关于在方法外的不同行中声明和初始化原始变量

时间:2016-03-16 09:42:50

标签: java

社区的新手,也是整个编程世界的新手。 在我学习java的过程中,我偶然发现了一个简单的问题。

在main方法(或任何方法)中,我可以在不同的行上声明和初始化一个原始变量。说,

public static void main (Strin[]args){
int age;
age = 42;
}

会很好地完成任务。

但是如果我在方法之外尝试这个,作为类变量或实例变量,

public class test {
int age;
age = 42;
}

代码不会编译。只有在一行中声明和初始化变量时,它才有效。我想知道为什么java在方法之外不允许这样做。

3 个答案:

答案 0 :(得分:0)

类主体可以包含变量声明和方法声明,但不包含单个语句。你什么时候会期望这样的声明被执行?因此,您的初始化必须与声明(作为快捷方式)内联或在某些方法中,例如,在构造函数中,如果要在创建新对象时初始化变量。

答案 1 :(得分:0)

这是语法错误!您的代码不符合Java语言规范中描述的Java语法和语义规则。

答案 2 :(得分:0)

你必须在构造函数中初始化它的值(这是构造函数的全部内容),比如

public test() {
age = 42;
}

对于静态变量,可以给它们一个值:

static int age = 42;

或者使用静态块:

static {
age = 43;
}