我有Employe类,该类具有id,name ...等变量以及从Employe继承的其他2个类:Seller和Cashier。
为了计算他们的薪水,我在卖方和出纳员中的每一个中创建了一个方法,但是我需要通过Employe中的名称获取方法来访问名称,所以我需要:
System.out.println("The salary is "+Seller.getName() +" is : " +salary);
键入内容后,我收到一条错误消息,我需要将名称变量设置为静态,但由于使用名称变量创建多个对象,因此我需要将其设置为非静态。
这个问题有解决办法吗?
编辑:
这是Employe课程:
public class Employe {
protected int id;
protected String name;
protected String adresse;
protected int nbrHours;
public Employe () {
}
public Employe (int id, String name, String adresse, int nbHours)
{
this.id=id;
this.name=name;
this.adresse=adresse;
this.nbrHours=nbHours;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setNom(String name) {
this.name = name;
}
public String getAdresse() {
return adresse;
}
public void setAdresse(String adresse) {
this.adresse = adresse;
}
}
这是卖方类:
public class Seller extends Employe {
private int prime;
public Seller (int id, String name, String adresse, int nbHours,int prime)
{
super(id,name,adresse,nbHours);
this.prime=prime;
}
public int getPrime() {
return prime;
}
public void setPrime(int prime) {
this.prime = prime;
}
@Override
public String toString() {
return super.toString() +" [prime=" + prime + "]";
}
public void salaireSeller ()
{
int salaire = 0;
if(nbrHours<160)
{
salaire = nbrHours * 10 + prime;
System.out.println("La salaire de "+Responsable.getName() +" est : " +salaire);
}
else if(nbrHours >160)
{
int Extra= (160 - nbrHours) * 12;
int salaire1 = 160 * 10000 + prime;
salaire= Extra + salaire1;
System.out.println("La salaire de "+Seller.getName() +" est : " +salaire);
}
}
在Main类中,我创建了一个Seller对象:
Seller Sel1 = new Seller(2, "Alex", "Miami", 18, 200);
现在我想在Main课程中使用SalaireSeller()方法计算其薪水:
Sel1.salaireSeller();
但在卖方类中:
System.out.println("La salaire de "+Responsable.getName() +" est : " +salaire);
它说我需要将Name设置为static,这将为每个对象赋予相同的名称
最佳答案
您需要一个Seller
实例,才能调用getName()
和getSalary()
。
Seller s = new Seller();
// ...
System.out.println("The salary is " + s.getName() +
" is : " + s.getSalary());