3 回答
TA贡献1993条经验 获得超5个赞
让我们从这个开始:
我是编程新手,但我知道这种类型的方法称为 setter。
不,不是。
在 OO 中,代码(主要)由由状态(字段)和(通常)对该状态进行操作的方法组成的类组成。
按照惯例 ...
甲设定器是设定字段作为方法的参数提供了新的值的方法。
甲吸气剂是返回字段的值的方法。
您的方法既不是 setter 也不是(纯)getter:
它不是一个 setter,因为它没有设置
wages
为提供的值。(它根据先前提供的值进行计算。)您可以将其视为
wages
字段的 getter ,但它是“不纯的”,因为它会更新字段并返回其值。
每次我去打印“工资”变量时,它只给我一个零,没有别的,我在主文件中定义了其他变量 hoursWorked 和 rateOfPay
如果没有看到您的其余代码,我们无法解释这一点。但是,我怀疑问题是以下之一:
任一
hoursWorked
或者rateOfPay
是零......因为他们没有被正确地设置/初始化为非零值。calculateWages
没有调用该方法。您有多个定义此方法的类的实例……而您的代码正在查看错误的实例。
可能……所涉及的一些变量被错误地声明为
static
.s
更新- 现在我看到你的代码,wages
为零的原因是你的代码没有调用calculateWages
.
TA贡献1806条经验 获得超8个赞
在您提供的代码中,没有setter方法,而是有一个方法getter。是的,您可以在 getter 和 setter 中进行计算。
public void setAmount(int amount){
this.amount = quantity * price;
}
public void getAmount(){
return this.amount + otherProperty;
}
TA贡献1946条经验 获得超3个赞
在 OOP 的最佳实践中,您的方法应该有两个参数:例如
public class Answer1 {
public static double calculateWages (int hoursWorked, double rateOfPay){
return hoursWorked * rateOfPay;
}
public static void main(String[] args) {
System.out.println(calculateWages(6, 5.24));
}
}
添加回答
举报