2013-01-09 90 views
3

數組我有一個對象,我試圖把一個數組列表:試圖創建對象

class PlayerScores { 

String playerName; 
int played=0; 
int win=0; 
int draw=0; 
int loss=0; 
int points=0; 


void playerNameSet(String name){ 
    playerName=name; 
} 
void played(){ 
    played=played+1; 
} 
void win(){ 
    win=win+1; 
    points(); 
} 
void draw(){ 
    draw=draw+1; 
    points(); 
} 
void loss(){ 
    loss=loss+1; 
} 

void points(){ 
    points = (win*3)+draw; 
} 

} 

,基本上,當用戶選擇了有多少球員有我想要初始化數組這些對象,但我收到錯誤。這裏是初始化數組然後給玩家分配名字的代碼。

數組已在我的代碼開始時定義並且是公開的,因此我可以在不同的活動中使用它: 「PlayerScores [] playersObjects;」

public PlayerScores[] makePlayerObjects() { 
     playersObjects = new PlayerScores[players]; 
     for(int i = 0; i < players + 1; i++) 
     { 
      playersObjects[i].playerNameSet(name variable); 
     } 

    return playersObjects; 
} 

錯誤似乎發生在設置名稱的行上,但它與名稱變量無關。

任何幫助,將大規模讚賞, 謝謝,奧利

回答

8

您尚未真正設置陣列中的對象。你首先需要構建一個對象,然後你可以訪問它。

public PlayerScores[] makePlayerObjects() { 
     playersObjects = new PlayerScores[players]; 
     for(int i = 0; i < playersObjects.length; i++) 
     { 
      playersObjects[i] = new PlayerScores(); //make the object so we can access it 
      playersObjects[i].playerNameSet(name variable); 
     } 

    return playersObjects; 
} 
+0

這工作完全謝謝! –

1
for(int i = 0; i < players + 1; i++) 

就會造成ArrayIndexOutOfBoundException,因爲數組的索引從0size -1

+0

我很抱歉,但我不確定您的意思,我需要更改哪部分for循環? –

+0

取出+1,它應該是for(int i = 0; i ceptno

+0

實際上我指出他的錯誤 – Blackbelt

0

你也可以使用一個列表。

List<PlayerScores > myList = new ArrayList<PlayerScores>(); 
for(int i = 0; i < players.size(); i++){ 
     myList.add(new PlayerScores().playerNameSet(thename)); 
} 

還注意到.size()的用法假設玩家是不同的陣列。如果它是int則忘記.size()部分