java 先初始化和赋值

2024-11-27 12:34:17
推荐回答(3个)
回答1:

Java在变量初始化是按照变量的定义顺序进行先后初始化的。先定义的变量不能使用后定义的变量进行初始化,因为此时后定义的变量还没有初始化,如果直接使用后定义的变量进行初始化,编译时会有错误,但是有一种方法可以使用后定义的变量初始化先定义的变量,那就是使用静态函数。
见代码:
public class StaticInit {

public static void main(String[] args) {
Test test = new Test();
}
}

class Test {
static Class1 class1 = new Class1(getName());
static Class2 class2 = new Class2();
static String getName()
{
return class2.getName();
}
}

class Class1 {
String name = "class1";

public Class1() {
System.out.println(name);
}

public Class1(String name1) {
System.out.println(name1 + name);
}

}

class Class2 {
String name = "class2";

public Class2() {
System.out.println(name);
}
public Class2(String name2) {
if(name2 == null)
System.out.println("NULL"+name);
else
System.out.println(name2+name);
}

public String getName() {
return name;
}
}

回答2:

  java变量的定义
  在程序运行过程中,空间内的值是变化的,这个内存空间就称为变量。为了操作方便,给这个空间取了个名字,称为变量名,内存空间内的值就是变量值。所以,申请了内存空间,变量不一定有值,要想变量有值,就必须要放入值。
例如:“int x”; 定义了变量但没有赋值,即申请了内存空间,但没有放入值;int x=5; 不但申请了内存空间而且还放入了值,值为 5。
注意:没有赋值的变量,系统将按下列默认值进行初始化。

回答3:

初始化就是赋值过程,只不过赋值不指定的话都是默认值。