programa de salario básico de Java

Soy nuevo en Java y sigo recibiendo este mensaje de error:

No se puede acceder a ninguna instancia adjunta del tipo Managesalary. Debe calificar la asignación con una instancia adjunta del tipo Managesalary (por ejemplo, xnew A () donde x es una instancia de Managesalary). en línea *

public class Managesalary
{
    public static void main(String[] args)

    {
        System.out.println("MY SALARY REVIEW");
        System.out.println("================");


    *   Salary Jan= new Salary();
        Jan.Month= "JANUARY";
        Jan.HoursWorked= 12;
        Jan.PerHourRate= 10;
        Jan.TaxRate= 0.10;

        Jan.printSalaryDetails();

        Salary Month2= new Salary();
        Month2.Month= "FEBUARY";
        Month2.PerHourRate= 10;
        Month2.TaxRate= 0.10;
        Month2.printSalaryDetails();

    }

class Salary
    {
    String Month = "";
    int HoursWorked= 0;
    int PerHourRate= 0;
    double TaxRate= 0.10;
    int MonthlySalary= (HoursWorked*PerHourRate);

    public void printSalaryDetails(){
        System.out.println("MONTH OF = " +Month);
        System.out.println("PER HOUR RATE = " +PerHourRate);
        System.out.println("TAX RATE =   " +TaxRate);
        System.out.println("TOTAL MONTHLY INCOME = " +MonthlySalary);
        System.out.println("================");
    } 
    } 
}
Respuesta 1

El error dice que debe crear una clase interna haciendo referencia a una instancia de la clase adjunta.

ManageSalary mn = new Managesalary()
Salary salary =  mn.new Salary();
Respuesta: 2

Copie el Salario de su clase en un nombre de archivo separado Salary.java y publíquelo, póngalo fuera de su clase principal, preferiblemente encima, o declare que estático.

Respuesta: 3

Las clases internas necesitan una referencia existente a la clase externa. Sin una instancia de Managesalaryesto, no será posible crear instancias Salary. Puede lograr esto haciendo:

Managesalary mSalary = new Managesalary();
Salary Jan= mSalary.new Salary();
Respuesta: 4

Ha definido la Salaryclase como una clase interna de Managesalary(aunque su sangría de código oculta esto un poco).

Por lo tanto, cada instancia de Salarydebe estar vinculada a una instancia de Managesalary.

En su mainmétodo, cree una instancia de Managesalary(p ManageSalary ms = new ManageSalary(). Ej. ) E inicialice su objeto de clase interna como ms.new Salary().

Respuesta: 5

Tengo una clase genérica Foo <T> y tipos parametrizados Foo <String> y Foo <Integer>. Ahora quiero poner diferentes tipos parametrizados en una sola ArrayList. Cuál es la manera correcta ...

Estoy usando JPBM para diseñar un flujo de proceso, con BPMN2. Quiero crear una instancia de un objeto de clase en una Tarea de script, por ejemplo: Map <String, Object> params = new HashMap <String, Object> (); ...

Soy bastante nuevo en Guava API y estoy tratando de ordenar las claves de un MultiMap en orden inverso o valor descendente. Estoy iniciando el mapa de la siguiente manera: ListMultimap <Fecha, Mapa <Cadena, Cadena y ...

Tengo una clase simple para fines ilustrativos: prueba de clase pública {public int test1 () {int result = 100; resultado = 200; resultado de retorno; } public int test2 (...