8.1 static(静态)关键字
用于修饰成员变量和成员函数
8.1.1 被static修饰的成员具备的特点
- 随着类的加载而加载,随着类的消失而消失
- 优先于对象存在
- 被所有对象所共享
- 可以直接被类名调用(类名.静态成员)
- 存放在共享区(方法区(类的方法)、数据区)
8.1.2 使用
- 静态方法只能调用静态成员
- 静态方法中不可以写this、super关键字
8.2 静态代码块
8.2.1 格式
static{
执行语句;
}
8.2.2 特点
随着类的加载而执行,优先于主函数,只执行一次。
8.2.3 作用
用于给类进行初始化。
注意:静态代码块中只能访问静态成员,不能访问非静态成员
8.3 设计模式
解决某一类问题最行之有效的方法。
java中有23中设计模式。
8.3.1 单例模式
解决一个类在内存中只存在一个对象
8.3.1.1 思想
想要保证对象唯一:
- 为了避免程序过多的建立对象,首先禁止程序建立该类对象。
- 还为了让程序能够访问到该类对象,只好在本类中自定义一个对象。
- 为了方便程序对自定义对象的访问,要提供一些访问方式。
8.3.1.2 具体实现
- 将构造函数私有化。(这样程序就不能够建立该类对象了)
- 在类中创建一个本类对象。
- 提供一个方法可以获取到该对象。
先初始化对象,称为:饿汉式
calss Single{
private Single(){ }
private static Single s = new Single();
public static Single getInstance(){
return s;
}
}
对象是方法被调用时才初始化,也叫对象的延时加载,称为:懒汉式
calss Single{
private static Single s = null;
private Single(){ }
public static Single getInstance(){
if(s==null){
s = new Single();
}
return s;
}
}
调用:Single.getInstance();
|
|