Как мне получить эти значения для отображения в качестве вывода вместо 0,0?

Итак, когда я запускаю это, он дает мне валовую оплату, но когда я это делаю, она составляет всего 0,0 ... и мне нужно знать, как заставить ее отображать фактический результат.

import javax.swing.JOptionPane;


public class Payroll_demo

{
   public static void main(String[] args)

    {

    String input;

    Payroll A = new Payroll();

    input = JOptionPane.showInputDialog(null, "What is your name?");

    A.setName(input);

    input = JOptionPane.showInputDialog(null, "What is your ID number?");

    int input_b = Integer.parseInt(input);

    A.setID(input_b);

    input = JOptionPane.showInputDialog(null, "What is your hourly pay rate?");

    A.setPayRate(input);

    input = JOptionPane.showInputDialog(null, "How many hours did you work?");

    A.setHours(input);

    JOptionPane.showMessageDialog(null, A.Gross());


  }


}

Я думаю, что это может быть проблема с конструктором, но я, честно говоря, понятия не имею. Я чувствую, что перепробовал почти все, но что-то должно быть...

public class Payroll

{

private String name;

private int ID;

private double payrate;

private double hours;

private double grosspay;


    public void setName(String nam)

    {

        String Name = nam;


    }

    public void setID(int id)

    {

        int ID = id;


    }

    public void setPayRate(String pay)

    {

        double PayRate = Double.parseDouble(pay);


    }

    public void setHours(String hou)

    {

        double Hours = Double.parseDouble(hou);


    }

    public String getName()
    {

        return name;

    }

    public int getID()
    {

        return ID;

    }

    public double getPayRate()
    {

        return payrate;

    }

    public double getHours()
    {

        return hours;

    }


    public double Gross()
    {

        double Gross = hours * payrate;

        grosspay = Gross;

        return grosspay;

    }






}

person Peyton Wray    schedule 03.12.2014    source источник
comment
Вы везде ставите слишком большой интервал.   -  person Michael Yaworski    schedule 03.12.2014
comment
Вы затеняете все свои переменные, повторно объявляя их в своих методах установки. Это только инициализирует локальную затененную переменную, оставляя поле нулевым или 0.   -  person Hovercraft Full Of Eels    schedule 03.12.2014


Ответы (1)


Как насчет того, чтобы вместо повторного объявления ваших переменных...

public void setName(String nam)
{
    String Name = nam;
}

public void setID(int id)
{
    int ID = id;
}

public void setPayRate(String pay)
{
    double PayRate = Double.parseDouble(pay);
}

public void setHours(String hou)
{
    double Hours = Double.parseDouble(hou);
}

Вместо этого вы используете поля экземпляра классов...

public void setName(String nam)
{
    name = nam;
}

public void setID(int id)
{
    ID = id;
}

public void setPayRate(String pay)
{
    payRate = Double.parseDouble(pay);
}

public void setHours(String hou)
{
    hours = Double.parseDouble(hou);
}
person MadProgrammer    schedule 03.12.2014