关于单例模式的问题

关于单例模式的问题

http://img1.sycdn.imooc.com//climg/59fc44150001ea7a05560381.jpg

http://img1.sycdn.imooc.com//climg/59fc44150001be6b05620422.jpg

我的问题如下:

1、既然对象实例定义的是static,那就是在类加载的时候,对象就创建了,并配合new调用了第一步中无参构造的方法,应该先输出“地球诞生”这条语句,就像前几节课中的静态代码块一样优先加载运行,但是程序运行结果并不是这样

2、还有个地方我不是很理解,如这句代码:private static Planet er=new Planet();表示在类加载的时候就实例化一个对象叫“er”,那么测试类中的Planet one=Planet.getIn();如“one”或者“two”这样的又该怎么去理解呢?它们不也是一个对象吗?和用new实例出来的er有什么区别呢?

我是新手,问题多而幼稚,大神们还请包容!

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

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

2回答
我想跑路 2018-02-22 22:16:12
好帮手慕珊 2017-11-03 18:56:06

1、关于第一个问题,类加载的时候有了这个对象,但也要使用这个类才行吧,否则的话,这个类根本就没有使用,怎么会有内容输出呢。

2、Planet one=Planet.getIn();通过这种方式去获取对象,就是获取的private static Planet er=new Planet();这条语句创建的对象。

  • 提问者 WhiteSJ #1
    关于第二个回答:这里的one是理解成声明的对象名,还是类似于数据类型中的变量名呢?
    2017-11-03 21:45:05
  • 一叶知秋519 回复 提问者 WhiteSJ #2
    one就是声明的对象名,可以通过one来调用类中的属性。祝学习愉快~
    2017-11-05 20:17:58
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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