這是最後一部分創建構造函數我不明白這種自動售貨機類
到目前爲止,自動售貨機類沒有任何構造函數。不帶構造函數的類的實例始終構造爲所有實例變量設置爲零(如果它們是對象引用,則爲null)。提供一個明確的構造函數總是一個好主意。
提供兩個構造爲自動售貨機類:
1),其與10個汽水罐
2)構造函數初始化的自動售貨機中的默認的構造,自動售貨機(INT罐),初始化自動售貨機與罐給定數量的 兩個構造函數應該初始化令牌計數爲0
這個方案實驗室是:
2.1。在這個實驗中,你將實施一臺裝有蘇打水的自動售貨機。要購買一罐蘇打水,顧客需要在機器中插入一個令牌。當令牌被插入時,罐頭可以從罐頭儲存器落入產品交付槽中。自動售貨機可以裝滿更多罐頭。目標是確定在任何給定時間機器中有多少罐和令牌。
您會爲VendingMachine類提供哪些方法?非正式描述他們。
2.2。現在將這些非正式描述翻譯成Java方法簽名,如
public void fillUp(int cans)
給出方法的名稱,參數和返回類型。不要執行它們。
2.3。這些方法需要哪些實例變量來完成他們的工作?提示:您需要跟蹤罐和令牌的數量。
用它們的類型和訪問修飾符聲明它們。
2.4。考慮用戶在自動售貨機中插入令牌時會發生什麼情況。令牌數量增加,罐頭數量減少。實現方法:
public void insertToken()
{
// Instructions for updating the token and can counts
}
您需要使用您在上一步中定義的實例變量。 不要擔心自動售貨機中沒有罐子的情況。在本課程後面,您將學習如何編寫決定「如果可以計數> 0」。現在,假設如果自動售貨機爲空,則不會調用insertToken方法。
2.5。現在實現一個方法`fillUp(int cans) 向機器添加更多罐子。只需將新罐的數量添加到罐數即可。
2.6。接下來,實現兩個方法getCanCount和getTokenCount,它們返回罐和令牌計數的當前值。 (您可能需要查看BankAccount類的getBalance方法以獲得指導。)
2.7。你已經實現了VendingMachine類的所有方法。 把它們連成一個類,像這樣:
public class VendingMachine
{
private your first instance variable
private your second instance variable
public your first method
public your second method
. . .
}
2.8現在完成以下測試程序,以便它行使所有的類的方法。
public class VendingMachineTester
{
public static void main(String[] args)
{
VendingMachine machine = new VendingMachine();
machine.fillUp(10); // Fill up with ten cans
machine.insertToken();
machine.insertToken();
System.out.print("Token count: ");
System.out.println(machine.getTokenCount());
System.out.println("Expected: . . .");
System.out.print("Can count: ");
System.out.println(machine.getCanCount());
System.out.println("Expected: . . .");
}
}
「沒有構造函數的類的實例總是與設置爲零的所有實例變量構建」 - 這是不正確的開始,如字段可以有字段初始值...我稍微擔心你使用的教科書(或其他)的質量:( –
)不同意「太廣泛的投票」。他顯示整個實驗室,並說他不明白的是如何創建兩個構造函數,一個需要一個參數,另一個使用默認值。沒有太多關於這個的。 – nhouser9
問題是,有太多的實驗室張貼在這裏t與潛在的問題無關。如果這些位被刪除並且相關的位都是剩下的,這將是一個完全合理的問題。 –