标签:
1 /* 2 static(静态) 3 4 需求:描述一下传智学生类。 都是中国人.... 5 6 7 目前存在的问题: 所有的学生都是中国 的,有n个学生就会有n份中国的 数据存内存中,这样子 8 会浪费内存。 9 10 目前方案: 把“中国”这个数据移动 到数据共享区中,共享这个数据给所有的Student对象使用即可。 11 12 问题2: 如何才能把这个数据移动 到数据共享区中共享呢? 13 14 解决方案: 只需要使用static修饰该数据即可。 15 16 17 静态的成员变量只会在数据共享区中维护一份,而非静态成员变量的数据会在每个对象中都维护一份的。。 18 19 */ 20 21 class Student{ 22 23 String name; 24 25 //使用了static修饰country,那么这时候country就是一个共享的数据。 26 27 static String country = "中国"; //国籍 28 29 //构造函数 30 public Student(String name){ 31 this.name = name; 32 } 33 } 34 35 class Demo9 { 36 37 public static void main(String[] args) 38 { 39 Student s1 = new Student("张三"); 40 Student s2 = new Student("陈七"); 41 42 s1.country = "小日本"; 43 System.out.println("姓名:"+s1.name+" 国籍:"+ s1.country); // 中国 44 System.out.println("姓名:"+s2.name+" 国籍:"+ s2.country); // 小日本 45 } 46 }
1 /* 2 static(静态\修饰符) 3 4 1. static修饰成员变量 :如果有数据需要被共享给所有对象使用时,那么就可以使用static修饰。 5 6 静态成员变量的访问方式: 7 8 方式1: 可以使用对象进行访问。 9 格式: 对象.变量名。 10 11 方式二: 可以使用类名进行访问。 12 格式: 类名.变量名; 13 14 注意: 15 1. 非静态的成员变量只能使用对象进行访问,不能使用类名进行访问。 16 2. 千万不要为了方便访问数据而使用static修饰成员变量,只有成员变量的数据是真正需要被共享的时候 17 才使用static修饰。 18 19 static修饰成员变量的应用场景: 如果一个数据需要被所有对象共享使用的时候,这时候即可好实用static修饰。 20 21 22 2. static修饰成员函数: 23 24 */ 25 26 class Student{ 27 28 static String name; //非静态成员变量 29 30 static String country = "中国"; //静态的成员变量 31 32 public Student(String name){ 33 this.name = name; 34 } 35 } 36 37 38 class Demo10 { 39 40 41 public static void main(String[] args) 42 { 43 Student s1 = new Student("狗娃"); 44 Student s2 = new Student("狗剩"); 45 46 //System.out.println("国籍:"+ Student.country); 47 System.out.println("名字:"+ s1.name); 48 System.out.println("名字:"+ s2.name); 49 } 50 }
标签:
原文地址:http://www.cnblogs.com/aytsoft/p/5588328.html