JAVA默认构造方法问题

大家好,我初学java。我想问个关于构造方法的问题。我看书本说,如果定义了有参构造方法,我要使用默认无参构造方法的话,就要自行添加。看到这我有些不理解。问题:1.既然我可... 大家好,我初学java。我想问个关于构造方法的问题。我看书本说,如果定义了有参构造方法,我要使用默认无参构造方法的话,就要自行添加。看到这我有些不理解。
问题:
1.既然我可以设置有参构造方法,通过有参构造方法初始化属性为什么还会用到无参构造方法?默认的无参构造方法在与有参构造方法共同存在时,它还有什么特殊的作用吗?什么时候会特意选择默认的无参构造方法?
2.既然可以通过有参构造方法修改属性值,那么setter和getter方法是不是只是人们约定的,方便程序交流的统一访问类属性的方法?有参构造方法作为初始化方法,也只是一种约定吗?我平时可不可以通过有有参构造方法访问内部属性?
不胜感谢。20分奉上!
展开
 我来答
马亦丁
2017-06-13 · TA获得超过166个赞
知道小有建树答主
回答量:105
采纳率:0%
帮助的人:88.1万
展开全部
1,无参构造方法可以给变量赋予固定的初始值。比如绝大部分实例只需要固定的初始值,偶尔几个实例需要不同的初始值,这时候2个构造器比较方便。
默认的无参构造方法在与有参构造方法共同存在时,它还有特殊的作用。比如JPA(Entity Bean)中,默认的无参构造方法是JPA规定必须有的。当然这个无参构造方法你自己不用,但是如果没有,编译的时候会报错。
2,有参构造方法可以初始化属性值,没有set,这实例的已经初始化的属性值就没法改了。某些情况下,不需要改变的值(比如Entity的ID值),是不需要set方法的。
具体用哪种构造器,要看实际用途,这个没有好坏之分。
有参构造方法可以初始化内部属性以创建实利,但是它不能访问内部属性。
被遗忘的脑细胞
2017-06-13 · 知道与不知道,你怎么确定你知道
被遗忘的脑细胞
采纳数:105 获赞数:291

向TA提问 私信TA
展开全部
有参,无参,set,get只是一种形式,根据需要来决定
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式