private关键字实现控制新建类数量

  private关键字作为一个重要的关键字,我们在开发中会经常用到,可是你有没有想过通过private关键字我们可以创建一个别人无法通过new来新建的类呢?下面我们就来看一下:

package returnobject;

public class RerurnObject {
    public static void main(String args[]){
        // Test test = new Test(); 通过这一条是无法创建Test对象的
        Test test = Test.returnObject();
        Test test2 = Test.access();  
        Test test3 =Test .access();  //虽然编译通过,但是实际并不会新建Test类
        Test test4 =Test .access();  //虽然编辑通过,但是实际并不会新建Test类
        
    }
    
}

class Test{
    private Test(){
        System.out.println("成功创建一个Test对象!");
    }
    private static Test test2 = new Test();
    
    public static Test access(){
        return test2;
    }
    
    public static Test returnObject(){
        return new Test();
    }
    
}

  正如上面代码所展示的,Test类是无法通过new来新建的,具体的原理是这样的:我们在Test类的构造器(构造方法)前面添加了关键字private,然后这个类就无法被创建了,但是我们可以通过Test类的静态方法来创建Test类,让其返回一个Test类。

  可能会有人问了,这样做有什么好处呢?试想一个,如果你想控制新建类(new 类名)的数量,那么这种方法无疑是最好的解决方案!特别是在将test2编程Test的一个静态私有成员(private static)以后,有 一个而且只能有一个。除非通过public 方法access(),否则根本无法访问它。

原文地址:https://www.cnblogs.com/caoleiCoding/p/6400209.html