在类块中声明和实例化

时间:2012-11-15 21:23:11

标签: java object block

在课程栏中:

而不是像这样制作一个Object(在本例中是一个简单的String):

public String one = "Hello!";

我想这样做:

String one;
one = "Hello!";

编译器抛出:

error: <identifier> expected

为什么呢?为什么第二个必须在方法中?

3 个答案:

答案 0 :(得分:2)

看起来这应该在某种构造函数中......无论哪种方式,都必须将它放在方法或构造函数(或其他代码块)中。这只是Java语法的规则之一。

public String one;

public MyClass() {
    one = "hello";
}

如果您填写了字段static,则可以

public static String one;

static {
    one = "hello";
}

答案 1 :(得分:1)

很可能

one = "Hello!"

位于类块中。该语句必须出现在代码块中 - 即;方法,构造函数或静态初始化程序。 E.g:

void myMethod() {
    String one;
    one = "Hello!";
}

非声明性陈述不能出现在类块中。

答案 2 :(得分:1)

one = "Hello!";行必须在方法内。