- class Person
- {
- String name;
- private static final Person p=new Person();
-
- private Person()
- {
- name="anhngsan";
- }
- public static Person getP()
- {
- return p;
- }
- }
- class Demo1{
- public static void main(String[] args)
- {
- Person p=null;//创建了Person类的一个引用p,这个p不指向任何实例。
- p=Person .getP();//因为Person类的构造函数私有化了,所以不能new它的对象,但它内部有
- //一个对象,并且还提供了一个getP()方法来让外部通过这个方法获取已经建立好的对象。
- //这个已经建立好的对象是什么样子的呢?它是在类内部创建的,存在于静态区中,创建的时候,用到了私有的
- //构造函数private Person(),在这个函数中,将这个唯一的对象,name属性的值改为了“anhngsan”
- //所以外部调用这个对象name时,就会打印“anhngsan”
- System.out.println(p.name)
- }
- }
- //在这个Person类中,它私有化了构造函数,外部无法new它的对象,Person.getP()是唯一获取Person对象的方式了,
- //这样的类只有一个对象,外部对它对象的操作都只能是同一个并唯一的对象,如果像更多了解这种模式。可以去
- //了解一下单例设计模式,相信了解了单例设计模式之后,您的疑问也会迎刃而解了。
复制代码 |