码迷,mamicode.com
首页 > 编程语言 > 详细

java之路 static

时间:2016-06-15 18:50:05      阅读:154      评论:0      收藏:0      [点我收藏+]

标签:

 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 }

 

java之路 static

标签:

原文地址:http://www.cnblogs.com/aytsoft/p/5588328.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!