为什么“地球诞生”只输出了1次呢?

为什么“地球诞生”只输出了1次呢?

Test类中创建了3个对象,为什么“地球诞生”只输出了1次呢?

https://img1.sycdn.imooc.com//climg/621e366709e4d75128801610.jpg

正在回答 回答被采纳积分+1

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

1回答
好帮手慕小尤 2022-03-02 10:16:51

同学你好,Earth类只有一个实例,earth对象是静态的会在第一次调用时,进行实例化为其赋值,其他时候调用已经完成了赋值,就不会去调用无参构造进行实例化。所以只输出了一次“地球诞生”。

https://img1.sycdn.imooc.com//climg/621ed15509087a8205250245.jpg

祝学习愉快!

  • 提问者 王小east #1

    之前我们学习static关键字那节课,定义猫的price为静态变量,在test类中对price进行了2次赋值,最后输出的price是最后一次赋值的,那不是每次都会赋值,只不过是每次复制都会影响其他对象的price吗?

    2022-03-02 23:33:02
  • 好帮手慕小尤 回复 提问者 王小east #2

    同学你好,是的,所有的对象是会共同使用一个静态变量,可以实现赋值(修改数据)。但单例模式只存在一个实例(对象),所以在类初始时(第一次调用该类时),立即加载earth对象实现赋值。后期在进行调用时就不会再进行赋值了,所以只输出了一次“地球诞生”。

    祝学习愉快!

    2022-03-03 10:19:47
  • 提问者 王小east 回复 好帮手慕小尤 #3

    好的 谢谢老师

    2022-03-03 21:38:49
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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