ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

Java static关键字的使用

2021-09-28 13:01:38  阅读:127  来源: 互联网

标签:Java Chinese 静态 System 关键字 static out 属性


  1 package com.bytezreo.statictest;
  2 
  3 /**
  4  * 
  5  * @Description  static 关键字的使用
  6  * @author Bytezero·zhenglei!        Email:420498246@qq.com
  7  * @version
  8  * @date 上午8:43:02
  9  * @  1.static :静态的
 10  *    2.static:可以用来修饰:属性,方法,代码块,内部类
 11  *              不能修饰构造器
 12  *    3.使用static修饰属性:静态变量(或类变量)
 13  *       3.1   属性,按是否使用static修饰,又分为:静态属性 vs 非静态属性(实例变量)
 14  *          实例变量:我们创建了类的多个对象,每个对象都独立的拥有了一套类中的非静态属性.当
 15  *      修改其中一个对象的非静态属性时,不会导致其他对象中同样的属性值修改
 16  *      
 17  *           静态变量:我们创建了多个对象,多个对象共享同一个静态变量,当通过某一个对象修改静态
 18  *       变量时,时修改过了的。    
 19  *       3.2   static 修饰属性的其他说明:
 20  *          ① 静态变量随着类的加载而加载。可以通过“类.静态变量”的方式进行调用
 21  *          ② 静态变量加载早于对象的创建。
 22  *          ③ 由于类只会加载一次,则静态变量在内存中也只会存在一份,存在方法区的静态域中
 23  *             方法区--->缓存
 24  *          ④        静态变量(类变量)             实例变量
 25  *          类        yes                            no
 26  *          对象      yes                            yes
 27  *          
 28  *        3.3 静态属性举例:System.out;    Math.PI;     
 29  *             
 30  *          
 31  *          
 32  *          
 33  *    4.使用static修饰方法:静态方法
 34  *         ① 随着类的加载而加载,可以通过“类.静态方法”的方式调用
 35  *         ②            静态方法              非静态方法
 36  *              类         yes                  no
 37  *              对象       yes                 yes
 38  *         ③ 静态方法中,只能调用静态的方式或属性
 39  *           非静态方法中,即可以调用非静态的方法或属性,也可以调用静态的方法或属性
 40  *           
 41  *    5.static注意点:
 42  *      5.1  在静态的方法内,不能使用this关键字,super关键字
 43  *      5.2  关于静态属性和静态方法的使用,从生命周期角度去理解
 44  *    
 45  *    
 46  *    6.开发中如何确定一个属性是否要声明为static的?
 47  *          > 属性是可以被多个对象所共享的,不会随着对象的不同而不同的
 48  *        
 49  *     开发中如何确定一个方法是否要声明为static的?
 50  *        > 操作静态属性的方法,通常设置为 static的
 51  *       > 工具类的方法,习惯上声明为 static 的,比如:Math,Arrays,Collections
 52  *
 53  *
 54  */
 55 public class StaticTest
 56 {
 57     public static void main(String[] args) {
 58         
 59         Chinese.nation = "中国";
 60         
 61         Chinese c1 = new Chinese();
 62         c1.name = "姚明";
 63         c1.age = 21;
 64         c1.nation = "CHN";
 65         
 66         
 67         
 68         Chinese c2 = new Chinese();
 69         c2.name = "马龙";
 70         c2.age = 30;
 71         c2.nation = "China";
 72     
 73         System.out.println(c2.nation);
 74         System.out.println(c1.nation);
 75         
 76         c1.eat();
 77         Chinese.show();
 78                 
 79         
 80         
 81     }
 82 }
 83 
 84 
 85 //中国人
 86  class Chinese
 87 {
 88     String name;
 89     int age;
 90     static String nation;
 91     
 92     
 93     public void eat()
 94     {
 95         System.out.println("中国人吃中餐");
 96         //非静态结构
 97         this.info();
 98         
 99         //静态结构
100         Chinese.show();
101         show();
102         walk();
103         System.out.println(Chinese.nation);
104         
105     }
106     
107     public static void show()
108     {
109         System.out.println("我是一个中国人");
110         //不能调用非静态结构
111         //eat();
112         //name = "Tom";
113         
114         //可以调用静态结构
115         System.out.println(Chinese.nation);
116         walk();
117     }
118     
119     public static void walk()
120     {
121         System.out.println("溜达");
122     }
123     
124     public void info()
125     {
126         System.out.println("介绍");
127     }
128 }

 

标签:Java,Chinese,静态,System,关键字,static,out,属性
来源: https://www.cnblogs.com/Bytezero/p/15347374.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有