[英]trouble iterating through array containing objects in java
我一直在尋找一段時間,並沒有在我所擁有的特定場景中找到這個問題的答案。
我有一個任務,我需要創建一個程序,該程序采用 5 個骰子的隨機 output 並確定游戲 Yahtzee 的可能得分值。
現在我有一個包含骰子的 class,我需要用它來創建一個 5 的數組。
package Assign1;
public class Dice {
int value;
public Dice(){
value = -1;
}
public Dice(int num){
value = num;
}
public void roll(){
int num = RandomNumber.getRandomNumber(1, 6);
value = num;
}
public int getValue(){
return value;
}
}
在我的下一個文件中,我必須創建該數組,並且對於數組中的每個 object,運行roll()
方法,該方法應該將 object 的值更改為隨機數。 現在,我無法運行該代碼。
package Assign1;
public class Yahtzee {
Dice[] dice;
public Yahtzee(){
dice = new Dice[5];
for (int i = 0; i < dice.length; i++){
dice[i].roll();
}
}
public static void main(String[] args) {
Yahtzee var = new Yahtzee();
int test = var.dice[0].getValue();
System.out.println(test);
}
}
底部是我只是想看看我的代碼是否能正常工作。
我正在嘗試遍歷 dice 對象數組並使用i
訪問索引,這將知道 object 並滾動該值。
我收到以下錯誤:
線程“主”java.lang.NullPointerException 中的異常:無法調用“Assign1.Dice.roll()”,因為“Assign1.Yahtzee.dice[0]”是 null
我嘗試了多種執行此操作的方法均無濟於事,所以我最后的手段是在這里詢問。
我習慣於使用 Python 進行編程,因此 java 對我來說是一種截然不同的語言,而且我想要執行的很多事情都需要一種截然不同的方法。
對於我在這里做錯的事情以及由於 python 導致我如何編碼而可能遇到的任何問題,我們將不勝感激。
謝謝
tl;博士
receive the following error while trying to iterate through an object array and access the object and its methods: Exception in thread "main" java.lang.NullPointerException: Cannot invoke "Assign1.Dice.roll()" because "Assign1.Yahtzee.dice [0]" 是 null
這個
dice = new Dice[5];
為 5 個 Dice 創建存儲但不實例化它們,它們仍然是 null
你需要做
for (...)
newdice = new Dice();
那么你需要在這個新的roll
上打電話
newdice.roll();
然后你可以將它添加到你的數組中
dice[i] = newdice;
聚在一起就會
public Yahtzee(){
dice = new Dice[5];
for (int i = 0; i < dice.length; i++){
Dice newdice = new Dice();
newdice.roll();
dice[i] = newdice;
}
}
當然可以將默認構造函數修改為實際調用roll
,然后您可以擺脫其他構造函數
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.