JAVA static关键字
static可修饰变量
示例:
public class Person {
static int pid;
int age;
public Person()
{
pid++;
age++;
}
public void show()
{
System.out.println("pid="+pid+" age="+age);
}
}
class Demo {
public static void main(String[] args) {
Person per1=new Person();
per1.show();
Person per2=new Person();
per2.show();
per1.show();
}
}
运行结果:
由static修饰的成员被称为静态成员,可以理解为该类的共有成员,所有的对象共享该成员,可直接通过类来调用而不需要经过实例化的成员来调用,例如上文中可使用 “Person.pid”来调用成员 pid
static可修饰成员
示例:
public class Person {
static int pid;
int age;
public Person()
{
pid++;
age++;
}
public void show()
{
System.out.println("pid="+pid+" age="+age);
}
static void show_pid()
{
System.out.println("pid="+pid);
}
}
class Demo {
public static void main(String[] args) {
Person per1=new Person();
per1.show();
Person per2=new Person();
per2.show();
per1.show();
Person.show_pid();
}
}
运行结果 :
static方法只能调用static成员以及static方法,不能以任何方式使用this、super关键字
利用static的单例设计模式 :
public class Administrator{
private Administrator()//私有构造器确保外部不能构造实例
{
}
private static Administrator admin;
public static Administrator getadmin()
{
if(admin==null)
{
admin=new Administrator();
}
return admin;
}
public void show()
{
System.out.println(admin);
}
}
class SingleExample {
public static void main(String[] args) {
Administrator admin = Administrator.getadmin();
admin.show();
Administrator admin2 = Administrator.getadmin();
admin2.show();
}
}
运行结果 :
由运行结果可知两次得到的皆是同一个对象
END