Использование метода Mutator в клиентской программе
Мне просто нужно некоторое разъяснение всякий раз, когда я использую метод Mutator в клиентской программе, хорошо, так что я настроил свой класс сотрудника, и меня учили, что моя переменная должна быть private double salary
тогда есть мои аксессоры, затем мутаторы, и это должно быть public void setSalary (double newSalary)
и внутри него есть salary = newSalary
Теперь я кодирую это в затмении, и я в моей клиентской программе, поэтому я положил Employee.setSalary(200.00);
что меня учили, это был правильный путь, и книга, которую мы используем в классе, также показывает это так...
Тем не менее, Затмение говорит мне, что мой мутатор должен быть public static void setSalary (double newSalary);
и что моя начальная переменная должна быть private static double salary
, почему говорится, что если книга и мой профессор говорят, что это по-другому?
Так вот мой код для моего класса
import java.text.DecimalFormat;
public class Employee {
private String Last_Name;
private String First_Name;
private int Years_in_Company;
private double Salary;
private char Status;
private String Section;
public Employee(){
Last_Name = "unknown";
First_Name = "unkown";
Years_in_Company = 0;
Salary = 0.0;
Status = '\u0000';
Section = "unkown";
}
public String getLast_Name(){
return Last_Name;
}
public String getFirst_Name(){
return First_Name;
}
public int getYears_in_Company(){
return Years_in_Company;
}
public double getSalary(){
return Salary;
}
public char getStatus (){
return Status;
}
public String getSection(){
return Section;
}
public void setLast_Name(String newLast_Name) {
Last_Name = newLast_Name;
}
public void setFirst_Name(String newFirst_Name){
First_Name = newFirst_Name;
}
public void setYears_in_Company(int newYears_in_Company){
if( newYears_in_Company >= 0)
Years_in_Company = newYears_in_Company;
else{
System.err.println ("Years in company cannot be negative");
System.err.println ("Value not changed");
}
}
public void setSalary (double newSalary){
if ( newSalary >= 2000.00){ //good practice to add braces to `if`condition.
Salary = newSalary;
}
else{
System.err.println("Salary cannot be less than $2,000.00");
System.err.println("Value not changed");
}
}
public void setStatus(char newStatus){
if (newStatus == 'a' || newStatus == 'r'){
Status = newStatus;
}
else{
System.err.println ("Status cannot be anything other than a or r");
System.err.println ("Value not changed");
}
}
public void setSection (String newSection){
Section = newSection;
}
public void display (){
System.out.println ( Last_Name + First_Name + Years_in_Company + Salary + Status + Section);
}
public String toString (){
DecimalFormat SalaryFormat = new DecimalFormat ("#0.0");
return "Name: " + Last_Name
+ ", " + First_Name
+ ", Years in Company: " + Years_in_Company
+ ", Salary: " + SalaryFormat.format ( Salary )
+ ", Status: " + Status
+ ", Section: " + Section;
}
public boolean equals( Object o){
if (!(o instanceof Employee) ){
return false;
}
else{
Employee objEmployee = (Employee) o;
if ( Last_Name.equals (objEmployee.Last_Name) &&
First_Name.equals (objEmployee.First_Name) &&
Math.abs(Years_in_Company - objEmployee.Years_in_Company) < 0.0001 &&
Math.abs(Salary - objEmployee.Salary) < 0.0001 &&
Status == objEmployee.Status &&
Section.equals(objEmployee.Section))
return true;
else
return false;
}
}
}
я просто хочу знать, почему Eclipse говорит мне, что мой мутатор должен быть public static void setSalary (double newSalary);
и что моя начальная переменная должна быть private static double salary
, почему говорится, что если книга и мой профессор говорят, что это по-другому?