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