2013-02-15 65 views
1

我正在尋找使用Java中另一個類的方法的一些幫助。我創建了一個擁有一些getter和setter方法的類。 getter方法包含一個switch語句,該語句具有一個傳入的參數「i」,該參數確定switch語句的大小寫。將另一個類引用爲實例變量?

現在在我的主程序中,我正在尋找使用該類的方法,但出於某種原因,我得到了一個java.lang.nullpointerexception。

在我的主要程序代碼如下所示:

public class Hangman extends ConsoleProgram { 

    public void run() { 

     String name = word.getWord(5); 

     println(name); 
    } 



    /* Private Instance Variable */ 
    private HangmanLexicon word; // Creates a new lexicon from the HangmanLexicon class. 
    private RandomGenerator rgen = RandomGenerator.getInstance(); // Creates a new random generator instance. 

}

所以你可以告訴我創建的私有實例變量,但由於某種原因,這是行不通的。任何幫助將是偉大的!謝謝!

回答

1

在你的代碼顯示word從未給出一個值,所以這將是null

你可能需要的東西,如:

private HangmanLexicon word = new HangmanLexicon(); 

或者,您可能需要獲得一個HangmanLexicon對象把你的一些其他方式的實例變量。

注意如果你正在爲斯坦福大學CS類(或類似的大學課程)做這個工作,我通過搜索發現了HangmanLexicon的來源。上面的行將工作如果和只有,如果這是我找到的相同的代碼。

+0

非常感謝您爲!我明白我需要爲變量分配一個值,但我不確定要賦值的值。非常感謝你! – Jonathan 2013-02-16 00:02:10

1

創建變量us還不夠:你也必須給它分配一些東西。

private HangmanLexicon word = /*put something here*/; 
+0

謝謝你回來,但我作爲一個班級的價值是什麼?它不一定有一個定義類型的String,int等。那麼我將賦值給它什麼值? – Jonathan 2013-02-15 23:58:03

1

您還沒有初始化word變量。所以它有默認值:null。並且調用空對象上的方法會導致NullPointerException。

閱讀一本關於Java的好書,或者Java tutorial。這是你需要理解的基本東西。

1

發生原因爲NullPointerException是因爲單詞沒有賦值。在使用它調用方法getWord(5)之前,您必須首先將值分配給word;

private HangmanLexicon word; 
         ^

初始化或分配字這樣反而如下

private HangmanLexicon word=new HangmanLexicon(); 
+0

非常感謝你!我知道我必須初始化變量,但我不知道該寫什麼值。謝謝! – Jonathan 2013-02-16 00:08:42

+0

你是指單詞的價值?單詞是「HangmanLexican」類的一個實例,通過使用單詞可以調用該類的不同方法 – nsgulliver 2013-02-16 00:12:36

相關問題