2 回答
TA贡献1735条经验 获得超5个赞
本类内部中实例化对象。
类中的封装性不光体现在对属性的封装上,实际上方法也是可以被封装的,当然在方法封装中也包含了对构造方法的封装。
举例:
public class GzPrivate2 {
public static void main(String[] args) {
//声明对象,不会报错
Singleton s = null;
//实例化对象,调用了私有化的构造方法,程序报错
s = new Singleton();//错误,无法实例化对象
}
}
class Singleton{
private Singleton(){
//将构造方法进行了封装,私有化,这时候此构造方法只能在本类中可见!
}
public void prit(){
System.out.println("nishuibaichuan");
}
}
以上程序运行报错!因为此类Singleton中的构造方法被私有化了,只能在本类Singleton中可见,不能再外部直接实例化!既然再外部不可用,那么我们就在内部使用!
举例:
public class GzPrivate {
public static void main(String[] args) {
//声明对象,不会报错
Singleton1 s = null;
}
}
class Singleton1{
//在内部产生本类的实例化对象
Singleton1 singleton1 = new Singleton1();
private Singleton1(){
//将构造方法进行了封装,私有化,这时候此构造方法只能在本类中可见!
}
public void prit(){
System.out.println("nishuibaichuan");
}
}
由上代码可知,当构造方法在其类中被私有化,那么就只能在其本类内部中实例化对象了!
添加回答
举报