单例设计模式:确保类在内存中只有一个对象,该实例必须自动创建,并且对外界提供
确保在内存中只有一个对象:
把构造方法私有
在成员位置自己创建一个对象
通过一个公共的方法提供访问
饿汉式:
类一加载就创建对象
public class Student {
private Student(){}
private final static Student s=new Student();
public static Student getStudent(){
return s;
}
}
--------------------------------------------------
public class Test {
public static void main(String[] args) {
Student s1=Student.getStudent();
Student s2=Student.getStudent();
System.out.println(s1==s2); //true
}
}
懒汉式:
用时才去创建对象
public class Student{
private Student(){}
private static Student s=null;
public static Student getStudent(){
if(s==null){
s=new Student();
}
return s;
}
}
在开发中会使用饿汉式,因为这种方式不会出现线程安全问题,懒汉式中加synchronization可解决
枚举:
enum:可以有构造器,但必须是private的,默认的也是private
枚举类可以有抽象方法,但枚举项必须重写方法;
public enum Color {
RED("红"){
@Override
public void show() {
System.out.println("红");
}
},GREEN("绿"){
@Override
public void show() {
System.out.println("绿");
}
},BLUE("蓝"){
@Override
public void show() {
System.out.println("蓝");
}
};
private String name;
private Color(String name){
this.name=name;
}
public String getName(){
return name;
}
public abstract void show();
}
---------------------------------------
public class Test {
public static void main(String[] args) {
Color r=Color.GREEN;
r.getName();
r.show();
}
}