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

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

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下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

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