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实际上就是把同一个内存地址中的值赋给了他们。
不知道这样理解对不对,,,感觉要补充一些其他的基础知识才能把这些理解的更透彻,老师有什么推荐的书看吗
0
收起
正在回答
1回答
同学理解的不错,继续加油。另外在本阶段,可以找一些Java基础部分的书来看。祝:学习愉快~
Java零基础入门18
- 参与学习 人
- 提交作业 7317 份
- 解答问题 14452 个
想要入门学编程?多年一直活跃在编程语言排行版前列的Java是一个很好的选择。本路径将从Java基础语法、面向对象、常用工具类三部分,为你开启软件开发的大门!
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星