这个构造函数有什么问题

时间:2011-10-11 08:48:22

标签: java

我是一名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]);
  }
}

谢谢,

4 个答案:

答案 0 :(得分:9)

你做不到:

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

应该是:

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

简写符号只能在声明数组时使用,如下所示:

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

答案 1 :(得分:2)

您只能在初始值设定项中使用数组常量,即

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

否则,您必须使用new,如下所示:

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

答案 2 :(得分: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]);
 }
}

答案 3 :(得分: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,特别是“创建,初始化和访问数组”部分。

相关问题