单例模式的一种实现
将类的所有构造方法都设为private让其无法从外部实例化,然后再内部来实例化一个类,提供一个get方法获取。
1 public class Student { 2 private String name; 3 private String id; 4 5 public String getName() { 6 return name; 7 } 8 9 public void setName(String name) { 10 this.name = name; 11 } 12 13 public String getId() { 14 return id; 15 } 16 17 public void setId(String id) { 18 this.id = id; 19 } 20 21 private Student(String name, String id) { 22 this.name = name; 23 this.id = id; 24 } 25 26 private Student() { 27 } 28 29 @Override 30 public String toString() { 31 return "Student [name=" + name + ", id=" + id + "]"; 32 } 33 34 private static Student instance = null; 35 36 public static Student getInstance() {//判断是否存在实例 37 if (instance == null) 38 instance = new Student(); 39 return instance; 40 } 41 }
测试:
1 Student student1 = Student.getInstance();//先获取一个学生对象 2 student1.setId("9527"); 3 student1.setName("华安"); 4 Student student2 = Student.getInstance();//再获取学一个学生对象 5 System.out.println(student1==student2); 6 System.out.println(student2);