1 /* 2 static 关键字: 3 1,被static修饰的成员变量,被所有对象所共享 4 2,静态随着累的加载而加载,随着类的消失而消失 5 3,优先于对象存在 6 4,静态成员可以直接被类名所调用 7 8 9 static的使用注意事项 10 1,静态方法只能调用静态成员,不能调用非静态成员。 11 非静态方法可以调用静态成员,也可以调用非静态成员 12 2,在静态方法中不允许出现this,super关键字 13 this代表对象,而静态方法执行时还没有对象呢! 14 3,主函数是静态函数 15 静态是有访问局限性的,只能访问静态的内容 16 17 18 静态成员变量和非静态成员变量的区别: 19 1,非静态成员变量又称为实例变量即对象变量 20 静态成员变量又称为类变量 21 22 2,非静态成员变量,随着对象的创建而存在,随着对象的消失而消失 23 静态成员变量,随着类的加载而存在,随着类的消失而消失 24 25 3,非静态变量存在于对象内存中 26 静态变量存在于方法区中 27 28 4,非静态变量只能被对象调用 29 静态变量可以被类名调用,也可以被对象调用 30 31 */ 32 class Person 33 { 34 String name; 35 static String country = "CN";//想要将对象中的相同数据进行对象的共享,就可以对该数据进行修饰。。 36 // 该修饰符就是static 37 public void show() 38 { 39 System.out.println("name="+name); 40 System.out.println("country="+country);//country --->Person.country 41 } 42 } 43 44 class StaticDemo 45 { 46 int x=4; 47 public static void main(String[] args) 48 { 49 /*Person p = new Person(); 50 p.name="xiaoqiang"; 51 p.show(); 52 //静态存在时还没有对象,要被调用,此时只有类可以完成 53 //静态成员多了一种调用方式 类名.静态成员*/ 54 55 System.out.println(Person.country); 56 new StaticDemo().show();//调用成员有两种方式,一个是对象,一个是类(必须要保证被调用的是静态成员) 57 } 58 public void show() 59 { 60 System.out.println("x="+x); 61 } 62 } 63
转载于:https://www.cnblogs.com/Wll-Fss/p/7844939.html