老师帮我解答一下

老师帮我解答一下

http://img1.sycdn.imooc.com//climg/5ee320680922f7af07810482.jpg老师,这边第七行之后的执行顺序能帮我仔细分析一下吗?为什么会出现“地球诞生”这四个字?

第七行之后,执行的应该是Earth类中的静态方法吧,那么静态方法又是如何和“地球诞生”这个构造方法搭上边的?其中的逻辑,老师能帮我解答一下吗?


正在回答

登陆购买课程后可参与讨论,去登陆

2回答
  • 柯菲特 提问者 #1
    老师,我的意思是getTnstance()这个语句怎么跟您标示的1这个语句关联上的
    2020-06-12 15:10:43
  • 苍星乱舞 回复 提问者 柯菲特 #2
    你的第七行以前是没有 Earth这个类的对吧 然后 第七行第一次出现 Earth这个类 所以需要把这个类加载进来,这个时候静态的属性就会被创建 后续的 getInstance方法调用时,已经不需要再加载了
    2020-06-12 15:23:10
好帮手慕阿慧 2020-06-12 15:25:04

同学你好,当程序执行到第7行Earth e1 = Earth.getEarth();时,会加载Earth类,加载静态属性,静态方法。加载静态属性时,会执行构造方法,在构造方法中输出“地球诞生”。如:

http://img1.sycdn.imooc.com//climg/5ee32da5095803a904300146.jpg

3个Earth.getInstance();是获得Earth类的静态属性instance。无论创建多少个对象,静态的属性始终只有一份,大家共享该属性。所以one,two,three这3个Earth对象都是同一个对象。

如果我的回答解决了你的疑惑,请采纳!祝学习愉快!

问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师