java类里面构造方法私有后,在外部不可以new对象,但是内部可以,这是为什么?

来源:百度知道 编辑:UC知道 时间:2024/06/27 12:34:28
代码如(单例模式):
public class Singleton {

private static Singleton uniqueInstance = null;

private Singleton() {

}

public static Singleton getInstance() {

if (uniqueInstance == null) {

uniqueInstance = new Singleton();

}

return uniqueInstance;

}
方法里面new的对象,是属于内部吗??
如果是在
public static void main(String[]args){
Singleton uniqueInstance = new Singleton();

}
这是属于外部吗???

希望高手详细解答一下!!!

不分内部外部。看看吧
public class Singleton {

private static Singleton uniqueInstance = null;

private Singleton() {
System.out.println("如果调用构造我就叫");

}

public static Singleton getInstance() {

if (uniqueInstance == null) {

uniqueInstance = new Singleton(); //1这个调用构造

}

return uniqueInstance;

}
public static void main(String[]args){
Singleton uniqueInstance = new Singleton(); //2这个调用的构造和1一样
getInstance();//请调用方法

}

}

你这是Java里面的单子模式.
//单子模式
public class Student {
//第一步,私有化构造器
private Student()
{

}
//第二步,初始化类型为当前类的静态属性
private static Student stu;
//第三步,编写静态方法用于获得实例化对象
/*
public static Student getInstance()
{
return stu;
}*/

public static Student getInstance()
{
if(stu==null)
{
stu=new Student();