JAVA默认构造方法问题
大家好,我初学java。我想问个关于构造方法的问题。我看书本说,如果定义了有参构造方法,我要使用默认无参构造方法的话,就要自行添加。看到这我有些不理解。问题:1.既然我可...
大家好,我初学java。我想问个关于构造方法的问题。我看书本说,如果定义了有参构造方法,我要使用默认无参构造方法的话,就要自行添加。看到这我有些不理解。
问题:
1.既然我可以设置有参构造方法,通过有参构造方法初始化属性为什么还会用到无参构造方法?默认的无参构造方法在与有参构造方法共同存在时,它还有什么特殊的作用吗?什么时候会特意选择默认的无参构造方法?
2.既然可以通过有参构造方法修改属性值,那么setter和getter方法是不是只是人们约定的,方便程序交流的统一访问类属性的方法?有参构造方法作为初始化方法,也只是一种约定吗?我平时可不可以通过有有参构造方法访问内部属性?
不胜感谢。20分奉上! 展开
问题:
1.既然我可以设置有参构造方法,通过有参构造方法初始化属性为什么还会用到无参构造方法?默认的无参构造方法在与有参构造方法共同存在时,它还有什么特殊的作用吗?什么时候会特意选择默认的无参构造方法?
2.既然可以通过有参构造方法修改属性值,那么setter和getter方法是不是只是人们约定的,方便程序交流的统一访问类属性的方法?有参构造方法作为初始化方法,也只是一种约定吗?我平时可不可以通过有有参构造方法访问内部属性?
不胜感谢。20分奉上! 展开
展开全部
1,无参构造方法可以给变量赋予固定的初始值。比如绝大部分实例只需要固定的初始值,偶尔几个实例需要不同的初始值,这时候2个构造器比较方便。
默认的无参构造方法在与有参构造方法共同存在时,它还有特殊的作用。比如JPA(Entity Bean)中,默认的无参构造方法是JPA规定必须有的。当然这个无参构造方法你自己不用,但是如果没有,编译的时候会报错。
2,有参构造方法可以初始化属性值,没有set,这实例的已经初始化的属性值就没法改了。某些情况下,不需要改变的值(比如Entity的ID值),是不需要set方法的。
具体用哪种构造器,要看实际用途,这个没有好坏之分。
有参构造方法可以初始化内部属性以创建实利,但是它不能访问内部属性。
默认的无参构造方法在与有参构造方法共同存在时,它还有特殊的作用。比如JPA(Entity Bean)中,默认的无参构造方法是JPA规定必须有的。当然这个无参构造方法你自己不用,但是如果没有,编译的时候会报错。
2,有参构造方法可以初始化属性值,没有set,这实例的已经初始化的属性值就没法改了。某些情况下,不需要改变的值(比如Entity的ID值),是不需要set方法的。
具体用哪种构造器,要看实际用途,这个没有好坏之分。
有参构造方法可以初始化内部属性以创建实利,但是它不能访问内部属性。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询