Метод getSalary () не работает

1
public class EmployeeTester
{
  public static void main(String[] args)
  {
    Employee e = new Employee("Harry", 5000);
    e.raiseSalary(15);
    System.out.println("New Salary" + getSalary());
    System.out.println("Hello" + getName());
  }
}

У меня возникла ошибка при вызове "getName()" и "getSalary()" выше. Код ниже. Я новичок в этом и буду признателен за любую помощь!

public class Employee
{
  private String employeeName;
  private double currentSalary;
  private double byPercent;

  public Employee(String employeeName, double currentSalary)
  {

  }

  public void raiseSalary(double byPercent)
  {
    double percentDivided;  
    percentDivided = byPercent / 100.0;
    currentSalary = currentSalary + (currentSalary * percentDivided);
  }

  public String getName()
  {
    return employeeName;
  } 

  public double getSalary()
  {
    return currentSalary;
  }
}
  • 1
    Конструктор пуст. Поля employeeName и byPercent не инициализируются.
  • 0
    if (employeeName.equals("Bathsheba")) return Double.MAX_VALUE
Показать ещё 1 комментарий
Теги:
class

6 ответов

3

Эта

System.out.println("New Salary" + getSalary());
System.out.println("Hello" + getName());

Должно быть

System.out.println("New Salary" + e.getSalary());
System.out.println("Hello" + e.getName());

для вызова методов на экземпляре Employee e.

  • 1
    Да, добавив к этому тот факт, что ваш конструктор ничего не делает, и вы должны быть в состоянии исправить свой код.
2

Ваш конструктор пуст, вы никогда не устанавливаете начальное имя employeeName и currentSalary:

public Employee(String employeeName, double currentSalary)
{
   this.employeeName = employeeName;
   this.currentSalary = currentSalary;
}
1

Вы не говорите Java, какой объект должен выполнить метод getSalary(). Попробуйте e.getSalary(), то же самое с getName().

Ваш конструктор ничего не делает. Он принимает переменные, но вы не назначаете их объекту.

0

Хорошо, поэтому в начале вы объявляете 3 переменные: EmployeeName, currentSalary и byPercent. Они находятся вне любого метода. Это означает, что они являются "полями экземпляров", в основном свойствами вашего Сотрудника. Они хранят данные. Вы говорите: "Сотрудникам нужно имя". Вам действительно нужно сообщить программе. В вашем конструкторе вы должны переименовать свои параметры. Вы не хотите, чтобы у них было то же имя, что и поля вашего экземпляра. Так что это будет "nameParameter" или что-то еще. Только не employeeName. Затем в вашем конструкторе просто укажите employeeName = nameParameter; и вы должны быть хорошими. Делайте то же самое для зарплаты.

0

У вас есть конструктор, занимающий имя и зарплату, но не привязывающий их к чему-либо.

0

Ваш конструктор пуст. Переменные не передаются значения.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню