gpt4 book ai didi

java - 非静态变量的引用

转载 作者:行者123 更新时间:2023-12-02 04:19:37 24 4
gpt4 key购买 nike

我有类 Employe ,其中包含 id 、 name 等变量......以及 继承自 Employe 的其他 2 个类:Seller 和 <强>收银员。为了计算他们的工资,我在 SellerCashier 中分别创建了一种方法,但我需要通过 Employe 中的名称 getter 方法访问名称> 所以我会:

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();

但是在 Seller 类中:

System.out.println("La salaire de "+Responsable.getName() +" est : " +salaire);

它说我需要将名称设置为静态,这将为每个对象提供相同的名称

最佳答案

您需要一个 Seller 实例来调用 getName()getSalary()

Seller s = new Seller();
// ...
System.out.println("The salary is " + s.getName() +
" is : " + s.getSalary());

关于java - 非静态变量的引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32928602/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com