java中创建对象了,显示初始化值和构造函数初始化对象的区别?先后执行顺序是什么?

 我来答
巨蟹神算子
2018-05-10 · TA获得超过437个赞
知道小有建树答主
回答量:292
采纳率:90%
帮助的人:116万
展开全部
两个都可以初始化值,本质上没有区别,不同的是执行的先后。构造方法初始化值时需要包含有参的构造方法,创建对象时使用Object obj = new Object(arg1,arg2)的形式,你说的显示初始化值应该是使用set方法吧,比如obj.setArg1(arg1)的形式。执行顺序肯定是构造方法的形式要在前了,因为在对象创建之后就会给属性赋值,而set方法形式赋值只会在你调用set方法时才会赋值。
再插一点题外话:其实在对象创建时成员变量已经初始化了,只是初始化的都是变量对应类型的默认值,比如int类型的默认值是0,引用类型默认值是null,boolean类型默认值是false。
无语人未休
2018-05-10 · 超过15用户采纳过TA的回答
知道答主
回答量:48
采纳率:56%
帮助的人:11.9万
展开全部
先初始化对象吧,这样才能给对象的属性赋值,不太懂...
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
chenwu890415
2013-07-30 · 超过12用户采纳过TA的回答
知道答主
回答量:56
采纳率:0%
帮助的人:34.8万
展开全部
一、初始化和赋值对内置类型的成员没有什么大的区别,像任一个构造函数都可以。但有的时候必须用带有初始化列表的构造函数:
(1) 成员类型是没有默认构造函数的类。若没有提供显式初始化时,则编译器隐式使用成员类型的默认构造函数,若类没有默认构造函数,则编译器尝试使用默认构造函数将会失败。

(2) const成员或引用类型的成员。因为const对象或引用类型只能初始化,不能对他们赋值。

还有一个赋值次数,效率上的区别,初始化参数列表在对象初始化时对成员变量赋值一次,构造函数内直接赋值,对成员变量赋值两次,一次是对象构造是用默认值进行赋值,第二次是调用构造函数赋值

二、在java中创建对象的过程中,会先执行无参构造函数,接着执行下面的语句
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式