首先写个类:public class Test{ public int x;public String y;public static void main(String[] args){ Test test = new Test();System.out.println("x = "+test.x);System.out.println("y = "+test.y);} } 保存为Test.java 这里并没有声名构造方法,所以它存在着默认的构造方法.用...
java中,默认的无参的构造方法的作用是什么?是不是初始化所有变量?
给你写个例子吧!!!
首先写个类:
public class Test{
public int x;
public String y;
public static void main(String[] args){
Test test = new Test();
System.out.println("x = "+test.x);
System.out.println("y = "+test.y);
}
}
保存为Test.java
这里并没有声名构造方法,所以它存在着默认的构造方法.
用javac Test.java 命令将其编译,得到Test.class文件!
然后用java Test 命令将其执行,输出的结果为:
x = 0
y = null
然后用javap Test 命令将Test.class文件反编译,得到如下结果:
public class Test extends java.lang.Object{
public int x;
public java.lang.String y;
public Test();
public static void main(java.lang.String[]);
}
可以看到,在类中多出来一个构造方法public Test();
但是这个构造方法并没有方法体,
所以,变量的初始化并不是构造函数执行的!!
而且当我自定义一个构造函数后,默认的构造函数也就消失了,又如何为变量初始化?
变量的初始化是在类被装载的时候自动初始化的!!2007-08-31
不是,如果你不写,它就有一个默认的构造方法,好让你创建它的实例。2007-08-31