-数据共享
static关键字:
用于修饰成员(成员变量和成员函数)
被修饰后的成员具备以下特点:
随着类的加载而加载
优先于对象存在
被所有对象所共享
可以直接被类名调用
使用注意:
静态方法只能访问静态成员
静态方法中不可以写this,super关键字
主函数是静态的
对象中存储的是特有数据
举例:
就像办公室有一台饮水机(共享性) 一次性杯子(特性)
public class Person {
private String name;
static String country="CN";
public static void main(String[] args) {
System.out.println(Person.country);
}
}
-成员变量和静态变量的区别
public class Person {
/*成员变量和静态变量的区别
* 1.两个变量的生命周期不同.
* 成员变量随着对象的创建而存在,随着对象的被回收而释放
* 静态变量随着类的加载而存在,随着类的消失而消失
* 2.调用方式不同.
* 成员变量只能被对象调用
* 静态变量可以被对象调用,还可以被类名调用
* 3.别名不同
* 成员变量也成为实例变量
* 静态变量成为类变量
* 4.数据存储位置不同
* 成员变量数据存储在堆内存的对象中,所以也叫对象的特有数据
* 静态变量数据存储在方法区(共享数据区)的静态区,所以也叫对象的共享数据
*
*/
private String name;//成员变量,实例变量
static String country="CN";//静态变量,类变量
public static void main(String[] args) {
System.out.println(Person.country);
}
}
-注意事项
1.静态方法只能访问静态成员(非静态可以访问静态,又可以访问非静态)
2.静态方法中不可以使用this或super关键字