- static关键字修饰的成员就是类成员。
- 1.理解类成员
-
5种类成员:成员变量,方法,构造器,初始化块,内部类。
-
static不能修饰构造器。
-
以static修饰的成员就是类成员。
-
类成员属于整个类,不属于单个对象。
-
类成员的生存范围:与类的生存范围相同。
-
- 类变量可以通过类来访问,也可以通过类的对象来访问。只不过当通过对象来访问的时候,系统在底层转换为通过该类来访问。
-
- 类方法也是属于类,通常直接实用类作为调用者来调用类方法,也可以使用对象来调用类方法。
-
- 静态初始化块 用于执行类初始化动作。在类的初始化阶段,系统调用类的静态初始化块对类进行初始化,当类初始化完成后,静态初始化块将永远不会获得执行的机会。
-
类成员不能访问实例成员。
- 单例类(Singleton)
- 如果一个类始终只能创建一个实例,则这个类称为单例类。
- 因为不允许自由创建该类的对象,所以应该把构造器使用private修饰(隐藏构造器)
- 根据良好的封装的原则,需要一个public方法作为该类的访问点。并且方法应该使用static修饰(因为调用该方法前不存在对象,只能靠类来调用该方法)
- 还必须有一个成员变量缓存已经创建的对象,否则该类不知道是否曾经创建过对象。且该变量应该用static修饰(因为用静态方法访问该变量)
class Singleton
{
private static Singleton instance;
private Singleton(){}
public static Singleton getInstance(){
if(instance==null)
{
instance=new Singleton();
}
return instance;
}
}
public class SingletonTest{
public static void main(String[] args)
{
Singleton s1=Singleton.getInstance();
Singleton s2=Singleton.getInstance();
System.out.println(s1==s2);//输出true
}
}