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 这里并没有声名构造方法,所以它存在着默认的构造方法.用...
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
mengvlog 阅读 63 次 更新于 2025-10-30 14:07:15 我来答关注问题0
檬味博客在线解答立即免费咨询

Java相关话题

Copyright © 2023 WWW.MENGVLOG.COM - 檬味博客
返回顶部