2013-04-13 101 views
2

我試圖讓這種方法來創建類'運動'的兩個實例。該方法傳入一個數組,其中包含有關該類的信息,然後將該數據發送給要創建的構造函數。如何從數組創建多個Java對象實例?

但是,我不確定如何引用實例1或2給定我的代碼。

public static void seperateValues(String sportDetail) { 
    String[] sportDetails = sportDetail.split(","); 
    System.out.println("Adding new sport to the Sport collection"); 
    System.out.println(sportDetail); 
    /* 
    for(int i=0; i<sportDetails.length; i++) //just used for testing whether it was splitting correctly { 
    System.out.println(sportDetails[i]); 
    }*/ 
    //name,usagefee,insurance,affiliationfees, then court numbers 
    //Tennis,44,10,93,10,11,12,13,14,15,16 
    int vlength; 
    vlength = sportDetail.length(); 
    new Sport(sportDetails); //this static methods loops twice, giving tennis and baseball 
    System.out.println(name); //this lists tennis and baseball respectively 
} 
+0

「'//這個靜態方法循環兩次,給網球和棒球'」,你的意思是'seperateValues()'方法在其他地方被循環調用嗎? –

+0

哪個是你在評論中談論的靜態方法? –

+1

如果所有這些方法最後都會創建一個對象,爲什麼不讓它返回這個對象,以便隨後可以將它引用到它所在的位置? –

回答

1

如果你只是想指運動的兩個實例,你可以簡單地這樣做:

Sport sport1 = new Sport(sportDetails); 
Sport sport2 = new Sport(sportDetails); 

,然後簡單地調用sport1sport2當你想訪問他們,但是如果你想使用次運動的n個方法N多,你可以這樣做:首先 改變separateValues()方法返回一個運動,通過改變這些行:

public static void seperateValues(String sportDetail) { 

public static Sport seperateValues(String sportDetail) { 

在方法的結尾,使其返回一個運動,像這樣:

Sport sport = new Sport(sportDetails); 
return sport; 

然後你就可以調用一個循環內的方法,並創建一個列表,這樣你就可以創建許多運動都需要:

//First declare a list of sports: 
List<Sport> sports = null; 

for (int i = 0; i<asManySportsAsYouWantToAdd; i++){ 
sports.add(separateValues(sportDetail)); 
} 

,然後訪問每個單獨的運動,你可以簡單的使用:

sports.get(n); //Where n is place of the sport on the list 
+1

正是我的意思。 +1 –

0

假設你的原始字符串sportDetail是「網球,棒球」,然後變成了2個方面的陣列,如sportDetails[0] = "tennis"sportDetails[1] = "baseball",然後在您的類Sport你只需要引用它們的方式。

換句話說,sportDetails[0]

相關問題