[英]Dynamic class reference variable JAVA?
我是Java新手,仍然有很多東西要學習。 我具有嵌入式C編程經驗,但對面向對象的編程是全新的。
我得到了我需要了解的以下內容。 當您使用Java創建類時,它就是您要創建的對象的藍圖。 並說我有一個帶有按鈕的GUI,在單擊“創建新自行車”按鈕后,您會在GUI等中輸入它要求的所有實例變量。
然后,說完一個完整的按鈕后,將創建一個對象。 利用您在GUI中提供的所有數據來適應藍圖。
因此,在您的動作偵聽器中,當按下“完成”按鈕時,將顯示一段代碼,例如Bicycle bike = new Bicycle();。 應該運行。 但是自行車是靜態的,您永遠都不知道會有多少輛自行車。 那么如何使參考變量動態化或像其動態一樣起作用呢?
抱歉,我嘗試使用以下方法清除它。
public void actionPerformed(ActionEvent e) {
Bicycle bike = new Bicycle();
}
這是按下Jbutton時執行的動作。 這將創建一個名為“ bike”的對象。 但是當再次按下按鈕時會發生什么呢?它會覆蓋先前名為Bike的對象嗎?
而且您不知道用戶通過按下按鈕將創建多少個自行車類型的對象。 所以我想知道是否可以通過以下方式使用數組之類的東西
String bike[] = {"bike1","bike2,"bike3"};
for(int i=0;i<3;i++){
Bicycle bike[i] = new Bicycle();
}
還是使用“數組列表”,因為最終您將不知道將創建多少個對象?
那么如何使參考變量動態化或像其動態一樣起作用呢?
默認情況下,這就是引用的行為。 它們沒有什么靜態的。 即使您使用static
字段,從C理解的意義上講,它也不是靜態的。 它在類加載之前不存在,並且如果將類加載到不同的類加載器中,則可以多次存在。 如果卸載了類加載器,它甚至可能消失。
如果您的字段不是static
,則它是動態的,尤其是它是局部變量時。
如果您想要一個可以保存對多個Bicycle
實例的引用的變量,則可以使用Collection
例如List
:
List<Bicycle> bikes = new ArrayList<Bicycle>();
然后,每次創建新的Bike實例時,都將其添加到List中:
Bicycle bike = new Bicycle();
bikes.add (bike);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.