关注
第1步:先看代码
// 煮泡面的类
class 煮泡面 {
String 口味;
// 无参构造:默认煮"老坛酸菜"
煮泡面() {
this("老坛酸菜"); // 重点:无参构造调用有参构造,传默认值
}
// 有参构造:按指定口味煮
煮泡面(String 口味) {
this.口味 = 口味;
System.out.println("正在煮" + 口味 + "泡面:");
System.out.println("1. 烧开水");
System.out.println("2. 放面饼+调料");
System.out.println("3. 泡3分钟");
}
}
第2步:拆解调用流程(关键!)
当你执行 new 煮泡面() 时:
1. 先进入无参构造 煮泡面()
2. 第一行遇到 this("老坛酸菜") ,立刻跳转到有参构造 煮泡面("老坛酸菜")
3. 在有参构造中,执行煮面步骤(烧开水、放调料等)
4. 有参构造执行完,回到无参构造(此时无参构造没有其他代码,直接结束)
重点:
- 无参构造自己不写煮面步骤,而是让有参构造去做(传默认口味“老坛酸菜”)
- 不管调无参还是有参构造,煮面步骤只在有参构造里写一次,避免重复
第3步:生活场景还原(彻底懂!)
- 你(无参构造):想煮泡面,但懒得说口味 → 对兄弟(有参构造)说:“帮我煮包默认的老坛酸菜”
- 兄弟(有参构造):收到指令,按“老坛酸菜”煮面(执行具体步骤)
- 核心:
你(无参)不关心怎么煮,只负责传默认口味;
兄弟(有参)负责具体干活,步骤只写一次。
这样不管谁煮面,步骤都不重复,你还能偷懒不用多说废话~
终极灵魂拷问:为什么无参构造能传参数?
- 因为 this(参数) 的本质是:让当前构造方法去调用本类的其他构造方法,参数是传给被调用的构造方法的。
- 无参构造自己没有参数,但它可以调用有参构造,并给有参构造传参数(比如默认值)。
就像你没带钱(无参),但可以让兄弟(有参构造)用他的钱(参数)请你吃面~
查看原帖
1 1
相关推荐
查看7道真题和解析 点赞 评论 收藏
分享
05-18 14:02
The University of Sydney 数据库工程师 点赞 评论 收藏
分享
牛客热帖
更多
- 1... 要对实习同事表白吗?1.1W
- 2... AI Agent 面试 Top50 必刷题9933
- 3... 到底怎么和 AI 一起写一个好项目?6158
- 4... 实习dirty work,怎么包装产出4811
- 5... 当你有一个只想捆住你的妈妈4394
- 6... 每日面试题-5月19日3329
- 7... 三段实习,被室友骂工贼,我错了吗?2913
- 8... 前京东HR说:这样改简历,真的会被一眼相中2587
- 9... 逆天操作,也是让我遇到了2382
- 10... 解决了xd们,发了个dy曝光视频,十几万播放,直接让他火速联系我,赔我路费了,兄弟们碰到不公平的违法行为,一定要积极捍卫自己权益2340
正在热议
更多
# 26届春招投递记录 #
31533次浏览 237人参与
# 妈妈治愈了你哪些脆皮时刻 #
47343次浏览 357人参与
# 27届实习投递记录 #
112384次浏览 1233人参与
# 我的工作日记 #
207665次浏览 1826人参与
# 我的求职总结 #
511155次浏览 7076人参与
# 你投了多少家公司?进展是___ #
247986次浏览 1443人参与
# 大学生该如何认清当下的就业环境? #
178564次浏览 941人参与
# AI面会问哪些问题? #
133771次浏览 3390人参与
# 要毕业了,再不说就来不及了 #
5741次浏览 104人参与
# 我与AI的日常 #
10496次浏览 184人参与
# 如果公司降薪,你会跳槽吗? #
168703次浏览 972人参与
# 今年秋招还有金九银十吗 #
85024次浏览 518人参与
# 25届非技术实习投递记录 #
159323次浏览 1027人参与
# 27届求职交流 #
498851次浏览 4654人参与
# 应届生应该先就业还是先择业 #
202196次浏览 944人参与
# 不考虑薪资和职业,你最想做什么工作呢? #
168617次浏览 916人参与
# 你以为的实习VS真实的实习 #
144122次浏览 760人参与
# 你觉得什么岗位会被AI替代 #
65296次浏览 386人参与
# 你的秋招进行到哪一步了 #
2802329次浏览 23414人参与
# 腾讯工作体验 #
646598次浏览 3915人参与