2011-10-11 82 views
0

我是一個java初學者。請幫我,什麼是錯,此代碼:這個構造函數有什麼問題

public class Test { 
    char[] alfa; 
    Test(){ 
    alfa = {'a','b'}; 
    } 

    public static void main(String[] args) { 
    Test t = new Test(); 
    System.out.println(t.alfa[0]); 
    } 
} 

謝謝

+2

也許你應該嘗試編譯它。 –

+2

歡迎來到SO!如果這是作業,請添加適當的標籤。如果您有進一步的信息(例如,您爲什麼懷疑此代碼有任何問題),請添加它,以便我們爲您提供更好的幫助。 –

回答

9

你不能做:

alfa = {'a','b'}; 

它應該是:

alfa = new char[]{'a','b'}; 

的短符號只能用於聲明數組時,如下所示:

char[] alfa = {'a','b'}; 
2

您只能使用在初始化數組常量,即

char[] alfa = { 'a', 'b' }; 

否則,您必須使用new,像這樣:

alfa = new char[] { 'a', 'b' }; 
0

在這一行:

alfa = {'a','b'}; 

你會得到一個Array constants can only be used in initializers編譯器錯誤。你應該初始化char[]這樣的:

alfa = new char[]{'a','b'}; 

或可替換地在聲明時初始化

char[] alfa = {'a', 'b'}; 

看看在Java教程的Arrays Chapter,特別是「創建,初始化和訪問數組「部分。

1

你可以試試這個方法:

public class Test 
{ 
private char[] alpha; 
public char[] getAlpha() 
{ 
    return this.alpha; 
} 
public Test(){ 
    this.alpha = new char[]{'a','b'}; 
} 
public static void main(String[] args) { 
    Test t = new Test(); 
    System.out.println(t.getAlfa()[0]); 
} 
}