我在看一個java教程,一旦他改變他的類有構造函數而不是在每個對象中定義每個變量,他所有的方法仍然有效。爲什麼現在我的方法不再工作,因爲我已經添加了構造函數?
我將它改爲構造函數,現在我所得到的全部爲0。
public class Volume3Lesson4Exercise1 {
public static void main(String[] args) {
groceryStore houstonStore = new groceryStore(534, 0.99, 429, 0.87);
groceryStore seattleStore= new groceryStore(765, 0.86, 842, 0.91);
groceryStore orlandoStore= new groceryStore(402, 0.77, 398, 0.79);
System.out.println("\nSeattle store revenue: ");
seattleStore.calculateGrossRevenue();
System.out.println("\nOrlando Store Revenue: ");
orlandoStore.calculateGrossRevenue();
}
}
class groceryStore {
int apples;
double applePrice;
int oranges;
double orangePrice;
groceryStore(int a, double ap, int o, double op){
a= apples;
ap= applePrice;
o= oranges;
op= orangePrice;
}
double calculateGrossRevenue(){
double grossRevenue;
grossRevenue= ((apples * applePrice)+ (oranges * orangePrice));
return grossRevenue;
}
}
在以下代碼中,收入返回數字0作爲總收入。爲什麼?數字與以前一樣,但現在只是構造函數而不是每個對象的單個變量。
變化'一個= apples'到'this.apples = A'。當然,其他領域也一樣。通常的慣例是爲參數和字段使用相同的名稱,並使用'this.apples = apples'。 –
我試過了,它工作。出於某種原因,在幾年前某人拍攝的視頻中,他沒有添加這個詞,它仍然有效。 –
重要的不是'這個'關鍵字。重要的是,您使用參數的值初始化字段,而不是使用字段的值初始化參數。 –