java中,默认的无参的构造方法的作用是什么?是不是初始化所有变量?

 我来答
百度网友4f9c76f1f
2007-08-31 · TA获得超过812个赞
知道小有建树答主
回答量:285
采纳率:0%
帮助的人:345万
展开全部
给你写个例子吧!!!

首先写个类:

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 · TA获得超过537个赞
知道小有建树答主
回答量:829
采纳率:0%
帮助的人:701万
展开全部
不是,如果你不写,它就有一个默认的构造方法,好让你创建它的实例。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式