有关java构造方法的问题,请大神解惑?

imilano 2017-03-09 10:05:06
本人小白一枚,最近在自学Java,但对构造方法尚有疑惑,烦请大神解惑。谢谢!

1.构造方法除了初始化还有什么好处?

2.假如我不自己给出构造方法,而让系统自动生成,那么系统自动生成的默认无参方法相比较于我自己给出带参的构造方法来讲有什么好处?自我感觉就算自己不给出,也能正常赋值并且对程序运行无影响啊?

3.系统默认给出无参的构造方法,此时无法在new一个对象的同时进行初始化?

4.自己给出构造方法的好处只在于在new一个对象的时候初始化一并初始化?
...全文
181 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
ryuugu_rena 2017-03-10
  • 打赏
  • 举报
回复
构造方法只是用来初始化的
_long_ 2017-03-10
  • 打赏
  • 举报
回复
系统默认的无参构造是在你没有写有参构造的时候给的, 如果你写了有参的那么系统不会默认给你个无参的构造,如果你不自己写个无参的构造,那么你就无法使用无参构造了.
qq_33884056 2017-03-10
  • 打赏
  • 举报
回复
写构造函数的好处是可以提前给类做初始化,不用再定义了,默认函数是无参的,但是后面有许多的类都是有参数的,你定义好了就不用再写了。
逗泥丸的平方 2017-03-10
  • 打赏
  • 举报
回复
至于你提到的其他情况. 虽然对你来说是一样的, 但是 比如我想写的方便一点,一行构造方法代替了好几行的set. 比如我在类初始化的时候想做一些事情. 比如,有一些参数只希望别人设置一次. 再比如如果你把参数写在构造方法上, 别人一看就知道,这个是要的,然后就写上了.当然后来有人觉得构造方法写好多参数特别蠢,于是后来这里有一些其他的设计模式 比如builder 当然我看到你的第三条, "系统默认给出无参的构造方法,此时无法在new一个对象的同时进行初始化" ,看起来初始化是个很容易混淆的词语... 是说对象的初始化(initialize),还是说你没有给定一个初始状态.?
逗泥丸的平方 2017-03-10
  • 打赏
  • 举报
回复
构造方法用处很多/ . \ 当然除了对于java本身的需要, 如果是初学者的话 ,可以暂时把它当做是生成对象的必经之路, 比如类有一些成员是必须要初始化的,就可以把逻辑写在里面.
root3 2017-03-10
  • 打赏
  • 举报
回复
接着学,然后试试复杂程序,慢慢就理解了。 构造函数当然可以不自己写而用系统默认的。 程序复杂了后,不写构造函数需要写很多setXXX函数赋值,其实也就比构造函数复杂一点,个人觉得理解上也差不多。 个人觉得写构造函数看个人习惯,虽然我也同样写一些构造函数然后还写一些set,但个人觉得可以不写构造函数。
理太偏 2017-03-10
  • 打赏
  • 举报
回复
4.自己给出构造方法的好处只在于在new一个对象的时候初始化一并初始化? 自己也可以给出 私有的构造方法,单例模式中会用到,防止new Object(),保证只有一个实例

62,628

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧