社区的新手,也是整个编程世界的新手。 在我学习java的过程中,我偶然发现了一个简单的问题。
在main方法(或任何方法)中,我可以在不同的行上声明和初始化一个原始变量。说,
public static void main (Strin[]args){
int age;
age = 42;
}
会很好地完成任务。
但是如果我在方法之外尝试这个,作为类变量或实例变量,
public class test {
int age;
age = 42;
}
代码不会编译。只有在一行中声明和初始化变量时,它才有效。我想知道为什么java在方法之外不允许这样做。
答案 0 :(得分:0)
类主体可以包含变量声明和方法声明,但不包含单个语句。你什么时候会期望这样的声明被执行?因此,您的初始化必须与声明(作为快捷方式)内联或在某些方法中,例如,在构造函数中,如果要在创建新对象时初始化变量。
答案 1 :(得分:0)
这是语法错误!您的代码不符合Java语言规范中描述的Java语法和语义规则。
答案 2 :(得分:0)
你必须在构造函数中初始化它的值(这是构造函数的全部内容),比如
public test() {
age = 42;
}
对于静态变量,可以给它们一个值:
static int age = 42;
或者使用静态块:
static {
age = 43;
}