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;
}
}
Эта
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
.
Ваш конструктор пуст, вы никогда не устанавливаете начальное имя employeeName и currentSalary:
public Employee(String employeeName, double currentSalary)
{
this.employeeName = employeeName;
this.currentSalary = currentSalary;
}
Вы не говорите Java, какой объект должен выполнить метод getSalary()
. Попробуйте e.getSalary()
, то же самое с getName()
.
Ваш конструктор ничего не делает. Он принимает переменные, но вы не назначаете их объекту.
Хорошо, поэтому в начале вы объявляете 3 переменные: EmployeeName, currentSalary и byPercent. Они находятся вне любого метода. Это означает, что они являются "полями экземпляров", в основном свойствами вашего Сотрудника. Они хранят данные. Вы говорите: "Сотрудникам нужно имя". Вам действительно нужно сообщить программе. В вашем конструкторе вы должны переименовать свои параметры. Вы не хотите, чтобы у них было то же имя, что и поля вашего экземпляра. Так что это будет "nameParameter" или что-то еще. Только не employeeName. Затем в вашем конструкторе просто укажите employeeName = nameParameter;
и вы должны быть хорошими. Делайте то же самое для зарплаты.
У вас есть конструктор, занимающий имя и зарплату, но не привязывающий их к чему-либо.
Ваш конструктор пуст. Переменные не передаются значения.
employeeName
иbyPercent
не инициализируются.if (employeeName.equals("Bathsheba")) return Double.MAX_VALUE