2013-05-15 81 views
2

我想知道在Java中做這件事的正確方法是什麼。 我的測試代碼:我是否必須初始化所有變量?

public class InitializeTest { 
    int i; 
    int b; 
    int x; 
    String frase; 

    public static void main (String args[]) { 
     InitializeTest IT = new InitializeTest(); 
     System.out.println(IT.i=IT.getI()); 
     System.out.println(IT.b=IT.getB()); 
     System.out.println(IT.x=IT.getX());   
      } 

    public int getI(){ 
     return 3;} 
    public int getB(){ 
     return 5;} 
    public int getX(){ 
     return 8;} 
} 

我應該初始化變量I,B和X或不是?如果沒有改變什麼? 我對此有所瞭解,但對我而言並不清楚,任何人都可以給我一個明確的答案嗎?

我在這裏閱讀了關於這個Do I really have to give an initial value to all my variables?,但不知道Java是否相同。

+0

爲什麼你有干將返回硬編碼的數字嗎?另外System.out.println(IT.i = IT.getI()); < - 這是令人困惑和不好的做法。這個代碼恐怕似乎從根本上是有缺陷的。 –

+0

int變量在默認情況下初始化爲0.請參閱此鏈接http://stackoverflow.com/questions/2437603/why-does-using-a-default-valued-java-integer-result-in-a-nullpointerexception –

回答

7

Java類字段原語被初始化爲默認值並且對象爲null。 所以數字類型被初始化爲0.

訪問未初始化的本地變量會給你一個編譯器錯誤。

http://docs.oracle.com/javase/tutorial/java/nutsandbolts/datatypes.html 參看 「默認值」

+0

謝謝,這是我想知道的事情之一! – DavidM

+5

局部變量略有不同;編譯器從不將默認值分配給未初始化的局部變量。所以這個答案並非總是如此。 – Sam

+0

我也想知道那個編譯錯誤!謝謝! – DavidM

相關問題