被static修饰的成员属于类,不属于对象。static修饰的成员被多个对象共享。
定义和使用格式
类变量
static 数据类型 变量名;
static int num = 5;
该类的每个对象都"共享"同一个类变量的值。任何对象都可以更改该类变量的值,但也可以在不创建该类的对象的情况下对类变量进行操作。
静态方法
修饰符 static 返回值类型 方法名 (参数列表){
// 执行语句
}
public static void showNum() {
System.out.println("num:" + numberOfStudent);
}
使用类名来调用,而不需要创建类的对象。
注意事项
- 静态方法可以直接访问静态变量和静态方法。
- 静态方法"不能直接访问"普通成员变量或成员方法。而成员方法可以直接访问类变量或静态方法。因为类变量先加载
- 静态方法中,不能使用this关键字。因为this是与对象有关的内容。
调用格式
-
- 类名.类变量名
public class Person{
static int a = 10;
}
Person.a;
-
- 类名.静态方法名(参数)
public class Person{
public static void show(int a){}
}
Person.show(10);
static内存图概述