单例类:如果一个类始终只能创建一个实例,则这个类被称为单例类。
错误代码:
-
class Singleton{
-
private static Singleton instance;
-
private Singleton(){}
-
public static Singleton getInstance()
-
{
-
if (instance == null)
-
{
-
return new Singleton();//如果这样写的话会返回false,因为创建了两个对象
-
}
-
return instance;
-
}
-
}
-
public class Hello {
-
public static void main(String[] args)
-
{
-
Singleton instance1 = Singleton.getInstance();
-
Singleton instance2 = Singleton.getInstance();
-
System.out.println(instance1==instance2);
-
//polymorphicBc.sub();
-
-
-
-
}
-
}
正确写法
-
class Singleton{
-
private static Singleton instance;
-
private Singleton(){}
-
public static Singleton getInstance()
-
{
-
if (instance == null)
-
{
-
instance = new Singleton();
-
}
-
return instance;
-
}
-
}
-
public class Hello {
-
public static void main(String[] args)
-
{
-
Singleton instance1 = Singleton.getInstance();
-
Singleton instance2 = Singleton.getInstance();
-
System.out.println(instance1==instance2);
-
//polymorphicBc.sub();
-
-
-
-
}
-
}
运行结果为true。
关于static方法的小知识点:
-
class NullData
-
{
-
public static void test()
-
{
-
System.out.println("Hello");
-
}
-
}
-
public class Hello {
-
public static void main(String[] args)
-
{
-
NullData nd = null;
-
nd.test();
-
}
-
}
运行结果是:Hello
表明null对象可以访问它所属类的成员。如果一个null对象访问实例成员将会引发NullPointException异常,因为null
表明该实例根本不存在,那么它的实例变量和实例方法自然也不存在。
阅读(1582) | 评论(0) | 转发(0) |