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