class Person
{
String name; //成员变量,实例变量
static String country = "CN"; // 静态变量,类变量
}
static关键字
用于修饰成员(成员变量和成员函数),既是关键字也是修饰符
被修饰后的成员具备一下特点:
1.随着类的加载而加载
2.优先于对象存在
3.被所有对象共享
4.可以直接被类名调用
5.修饰的数据是共享数据,对象中的存储的是特有数据
成员变量和静态变量的区别
1.两个变量的生命周期不同
成员变量随着对象的创建而存在,随着对象的被回收而释放
静态变量随着类的加载而存在,随着类的消失而消失
2.调用方式不同
成员变量只能被对象调用
静态变量可以被对象调用,还可以被类名调用,(建议静态变量用类名调用,一看就知道这是个静态变量)
3.别名不同
成员变量称为实例变量
静态变量称为类变量
4.数据存储位置不同
成员变量数据存储在堆内存的对象中,所以也叫对象的特有数据
静态变量数据存储在方法区(也叫静态区),所以也叫对象的共享数据
使用注意
1.静态方法只能访问静态成员
2.静态方法中不可以写this。super关键字
3.主函数是静态的