java之路 static

Posted aytsoft

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java之路 static相关的知识,希望对你有一定的参考价值。

 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的主要内容,如果未能解决你的问题,请参考以下文章

java之路 构造代码块注意事项

electron爬坑之路之__static

Java学习之路 —— Java命名规范

solr分布式索引实战分片配置读取:工具类configUtil.java,读取配置代码片段,配置实例

Java学习之路---计算圆形的面积和周长

Java初识方法