3-4的代码和一些自己的理解

3-4的代码和一些自己的理解

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
public class Emperor {
     //定义私有构造方法
    private Emperor(){
         
    }
     //定义私有静态类对象
    private static Emperor ep;
     //定义公有静态方法返回类内的私有静态对象
     public static Emperor getInstance(){
         if(ep==null){
             ep=new Emperor();
         }
         return ep;
     }
         
}
 
public class Test {
 
    public static void main(String[] args) {
        System.out.println("创建1号皇帝对象");
        Emperor ep1=Emperor.getInstance();
        System.out.println("创建2号皇帝对象");
        Emperor ep2=Emperor.getInstance();
        System.out.println("创建3号皇帝对象");
        Emperor ep3=Emperor.getInstance();
        System.out.println("三个皇帝对象依次是:");
        System.out.println(ep1);
        System.out.println(ep2);
        System.out.println(ep3);
    }
}

因为好像对象初始化会自动赋值为null,所以我把“=null"去掉了。

然后我的理解是在单例模式下,只有通过类名.getInstance()这个方法才能获取到该对象的实例,而这个实例是赋值给了该对象的私有静态成员,然后因为静态成员会在类加载时就在内存中开辟出一段空间存储,所以后面的ep1,ep2,ep3实际上就是把同一个内存地址中的值赋给了他们。

不知道这样理解对不对,,,感觉要补充一些其他的基础知识才能把这些理解的更透彻,老师有什么推荐的书看吗

正在回答

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

1回答

同学理解的不错,继续加油。另外在本阶段,可以找一些Java基础部分的书来看。祝:学习愉快~

  • 慕侠3717263 提问者 #1
    谢谢~请问适合本阶段的java基础部分的书有哪些呢:)
    2019-01-22 11:27:08
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

0 星
请稍等 ...
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

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