转载

JAVA 静态成员 static

static关键字

作用:是一个修饰符,用于修饰成员(成员变量,成员方法)

1、被static 修饰后的成员变量只有一份

2、当成员被static修饰之后,多了一种访问方式,除了可以被对象调用之外还可以被类名直接调用(类名.静态成员)

static的特点:

1、随着类的加载而被加载

2、优先于对象的存在

3、被所有的对象所共享的

4、可以直接被类名做调用

存放位置:

静态成员属性(类变量)随着类的加载而存在于data内存区。

普通成员属性随着对象的建立而存在于堆内存。

生命周期:

1、静态成员(类变量)生命周期最长,随着类的消失而消失

2、非静态成员(实例变量)生命周期比静态成员短,随着对象的消失而消失

方法的注意事项:

1、静态的方法只能访问静态的成员

2、非静态的方法即能访问静态的成员(成员属性,成员方法)也能访问非静态的成员

3、今天方法中是不可以定义 this、super关键字,因为静态优先于对象存在,所以静态方法不可以出现this

class G{  String name;  int age; //成员属性(另一种叫法(实例变量)  static String country; //静态成员属性(另一种叫法:类变量)  static void jt(){   System.out.println(country); //静态方法里面访问静态成员属性时,不能使用this关键字,不能访问非静态成员属性。  } } public class Index{  public static void main(String[] args){   G A = new G();   A.country = "小明";   G B = new G();   System.out.println(A.country); //对象A,定义了country成员属性的值,可以输出,这是常规的方式   System.out.println(B.country); //对象B,没有定义country成员属性的值,也可以输出   System.out.println(G.country);//类名.static成员,也可以输出    B.jt(); //调用静态方法  } } 
正文到此结束
Loading...