簡體   English   中英

動態創建對象[java]

[英]dynamically creating object [java]

這可能是一個簡單的問題,但是我是編程新手。 我的問題是如何動態創建類的實例。 例如,我有一個圓類,它具有計算面積和半面積的方法,依此類推,而類的構造函數初始化所有的類字段,例如半徑和其他字段。 我想要做的是每當用戶想要創建一個新圈子時,都創建一個類的實例。 要創建一個圈子課程,這是我目前擁有的

circle c1 = new circle(radius);

但是此對象是在編寫代碼時靜態創建的,因此當用戶想要創建新對象時,如何創建類的新實例。

感謝您的任何幫助。 請成為編程新手。

看看它有多簡單

 Circle c1 ;
 //{
    // your users wish and store it in some boolean var .
 //}

 if (userWantsObjectCreation) {
       c1 = new Circle();
 }
 else {
    // your holy logic here instead if object creation .
 }

您可以從用戶那里輸入要求“創建圓?輸入Y或N”的輸入,然后使用其他條件

if("Y".equals(input))
{
c1 = new Circle();
}

else{
//something else
}

基本上,您必須將所有創建的圈子存儲在“列表”結構中。

例如:

List<Circle> list = new ArrayList<Circle>();

Circle c1 = new Circle(radius);
list.add(c1);

...

void onUserClickedCreateCircle() {
    Circle c = new Circle(15);
    list.add(c);
}

void renderAllCirclesOnScreen() {
    //Take each circle from the list into variable c
    for (Circle c : list) {
        drawCircle(c);
    }
}

語法如下:

ObjectName obj=Class.forName("object name full name").newInstance();

例如,您有一個名為Car的類,它位於com.toyota包中。 然后,您可以使用以下語句實例化Car對象:

Car car=(Car)Class.forName("com.toyota.Car").newInstance(); 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM