package cn.itcast_05;
/*
* 饿汉式:
* 类一加载就创建对象
*/
public class Student {
//构造私有
private Student() {
}
//自己造一个对象
//为了静态方法访问此变量
//所以该变量也要加静态
外界可以直接访问这个变量不安全所以要加私有
private static Student s = new Student();
//提供公共的访问方式
//为了保证外界可以直接使用该方法,加静态
public static Student getStudent() {
return s;
}
}
package cn.itcast_05;
/*
* 单例模式:
* 保证类在内存中只有一个对象
*
* 如何保证类在内存中只有一个对象
* A:把构造方法私有
* B:在成员位置自己创建一个对象
* C:通过一个公共的方法提供访问
*/
public class StudentDome1 {
public static void main(String[] args) {
// Student s1 = new Student();
// Student s2 = new Student();
// System.out.println(s1 == s2 );//false
//不是单例模式 对象s1和对象s2不相等
//通过单例得到对象
Student s1 = Student.getStudent();
Student s2 = Student.getStudent();
System.out.println(s1 == s2 );//true
System.out.println(s1);
System.out.println(s2);
//外界可以直接访问这个变量不安全所以要加私有
//Student.s = null;
}
}