zhangsenwei

张森炜的博客

联系 管理
  19 Posts :: 8 Stories :: 55 Comments :: 0 Trackbacks

今天公司,有同事再问为什么类的构造器写成私有不报错?类构造器写成了私有我们就没有办法创建这个类的对象了。例如:

 

public class Test {
      
//注意这里的构造器是私有的
    private Test() {
        System.out.println(
"我在构造器中。。。。");

    }


    
public void bb()
    
{
        System.out.println(
"我在bb方法中。。。。");
    }

}

当我们创建通过代码 Test test  = new Test();  来创建Test类的对象时就会报错,编辑器让我们创建。

其实当我们把构造器进行私有化后,主要的目的是不让开发者随随便便创建对象,在java中只有我们要求这个程序中某种类型,只有一个对象存在时会将构造器私有化,也称之为单态模式或单例模式。例:

public class A {
    
private static A a =null;
    
private A() {
        System.out.println(
"我在构造器中。。。。");
    }


    
public static A aa() {
        
/*
            先判断 a 对象是否已经开辟了内存,如果对象已
            经存在就不再创建对象保证程序中只有一个实例
            
*/

        
if(a==null){
        
//如果 a 对象没有开辟内存,为他开辟一块新的
         a = new A();
        }

        
//返回 a 对象
        return a;
    }


    
public void bb() {
        System.out.println(
"我在bb方法中。。。。");
    }

}
posted on 2008-06-19 16:58 张森炜 阅读(1224) 评论(0)  编辑  收藏

只有注册用户登录后才能发表评论。


网站导航: