- static 修饰成员 或者 方法
- 类对象共享
- 生命周期长 随着类的加载产生 类销毁时释放 和类生成的对象无关
- static 不能修饰外部类(内部类可以加)
- static 不能修饰局部变量
public class Person {
// 静态成员 类成员
// 无论有多少实例成员都共用这一个成员
public static String name = "p"
// 静态代码块
// 会比构造代码块先执行
// 和类一起加载 与对象无关
static{
}
// 构造代码块
// 会比构造方法先执行
{
}
// 构造方法
public Person(){
}
// 静态方法 类方法
public static void eat(){
// 静态方法无法访问同一个类中的非静态成员 只能直接调用同一个类中静态成员
// run();
// 但是可以通过实例化这个类 在调用这个类中的成员
Person p2 = new Person();
p2.run();
p2.name = "p2";
System.out.println("吃饭");
}
public void run(){
// 成员方法可以调用静态方法
eat();
System.out.println("跑");
}
}
// 直接类名.静态成员 访问(推荐)
Person.name = "person";
Person.eat();
// 对象名.静态成员
Person p1 = new Person();
p1.name = "p1";
p1.eat();