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() {
}
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();