3 回答

TA貢獻1993條經驗 獲得超6個贊
讓我們從這個開始:
我是編程新手,但我知道這種類型的方法稱為 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));
}
}
添加回答
舉報