Java-Study
java中static用法:
static :静态的,用于修饰成员(成员变量,成员方法);
1. 被static所修饰的变量或者方法会储存在数据共享区;
2. 被static所修饰的成员变量只有一份;
3. 当成员被static修饰之后,可以被对象调用,还可以被类名调用(类名.静态成员)
static特点:
1. 随着类加载而被加载;
2. 优先于对象存在;
3. 被所有对象共享;
4. 被static修饰的变量成为静态变量(类变量)或者实例变量;
5. 生命周期:
(1)类变量周期生命最长,随着类的消失而消失;
(2)实例变量生命周期比类变量短,它是随着对象的消失而消失;
6. 方法注意事项:
静态的方法只能访问静态的成员;
非静态方法既能访问静态成员(成员变量,成员方法)又能访问非静态成员;
局部变量不能被static修饰;
静态方法中是不可以定义this、super关键字的,因为静态优先于对象存在,
实例变量和成员变量区别:
例如:定义一个类:
class Test{
public static int num;
public int temp;
}
如果想访问temp属性,就必须先创建一个Test对象,才能访问: Test a=new Test();
a.temp:实例成员变量。
如果想访问num的话,不用创建Test的实例就可以访问,Test.num 这就是类成员变量
主要区别:访问需不需要创建对象,对于类成员变量,所有对象是共享一个变量。
静态成员:静态类中的成员加入static修饰符,即是静态成员.可以直接使用"类名.静态成员名"访问此静态成员,因为静态成员存在于内存,非静态成员需要实例化才会分配内存,所以静态成员 函数不能访问非静态的成员..因为静态成员存在于内存,所以非静态成员函数可以直接访问类中静态的成员.
非静态成员:所有没有加Static的成员都是非静态成员,当类被 实例化之后,可以通过实例化的类名进行访问..非静态成员的生存期决定于该类的生存期..而静态成员则不存在生存期的概念,因为静态成员始终驻留在内存中..