金刀的博客 | Java static关键字

0x01 static修饰属性

  • 示例程序:static变量和非satatic变量的区别

    • 非static属性
    class Static{
    	private String name;
    	private int age;
    	String address = "中国武汉";
    	public Static(String name,int age) {
    		this.name = name;
    		this.age = age;
    	}
    	public String getInfo() {
    		return "姓名:"+this.name+",年龄:"+this.age+",地址:"+this.address;
    	}
    }
    public class Demo3 {
    	public static void main(String[] args) {
    		Static obj_1 = new Static("Jenny", 18);
    		Static obj_2 = new Static("Tom", 20);
    		Static obj_3 = new Static("Join", 22);
    		obj_1.address = "中国厦门";
    		System.out.println(obj_1.getInfo());
    		System.out.println(obj_2.getInfo());
    		System.out.println(obj_3.getInfo());
    	}
    
    }
    
      ![](https://i.imgur.com/hqmrx2O.png)
    
    • static属性
      class Static{
      	private String name;
      	private int age;
      	static String address = "中国武汉";
      	public Static(String name,int age) {
      		this.name = name;
      		this.age = age;
      	}
      	public String getInfo() {
      		return "姓名:"+this.name+",年龄:"+this.age+","
      				+ "地址:"+Static.address;
      	}
      }
      public class Demo3 {
      	public static void main(String[] args) {
      		Static obj_1 = new Static("Jenny", 18);
      		Static obj_2 = new Static("Tom", 20);
      		Static obj_3 = new Static("Join", 22);
      		Static.address = "中国厦门";
      		System.out.println(obj_1.getInfo());
      		System.out.println(obj_2.getInfo());
      		System.out.println(obj_3.getInfo());
      	}
      
      }
      

address为非静态属性(变量)时,address属性被每一个实例化对象(new)独享。
address为静态属性时(被static关键字修饰),address属性为共享属性时(所有对象可以访问)。

  • static修饰属性的特点:
    • static声明的属性也称为类属性,所有的类属性都可以通过类名.属性直接调用,没有static关键字的属性必须在产生实例化对象之后才可以被使用;

0x02 static修饰方法

  • 示例程序:static方法和非satatic方法的区别

    • 非static方法
    class Static{
    	private String name;
    	private int age;
    	private String address = "中国武汉";
    	public Static(String name,int age) {
    		this.name = name;
    		this.age = age;
    	}
    	public void setCountry(String addre) {
    		address = addre;	// 设置内容
    	}
    	public String getInfo() {
    		return "姓名:"+this.name+",年龄:"+this.age+","
    				+ "地址:"+this.address;
    	}
    }
    public class Demo3 {
    	public static void main(String[] args) {
    		Static obj_1 = new Static("Jenny", 18);
    		Static obj_2 = new Static("Tom", 20);
    		Static obj_3 = new Static("Join", 22);
    		obj_1.setCountry("中国厦门");
    		System.out.println(obj_1.getInfo());
    		System.out.println(obj_2.getInfo());
    		System.out.println(obj_3.getInfo());
    	}
    }
    
      ![](https://i.imgur.com/tZ9csIx.png)
    
    • static方法
    class Static{
    	private String name;
    	private int age;
    	private static String address = "中国武汉";
    	public Static(String name,int age) {
    		this.name = name;
    		this.age = age;
    	}
    	public static void setCountry(String addre) {
    		address = addre;	// 设置内容
    	}
    	public String getInfo() {
    		return "姓名:"+this.name+",年龄:"+this.age+","
    				+ "地址:"+Static.address;
    	}
    }
    public class Demo3 {
    	public static void main(String[] args) {
    		Static obj_1 = new Static("Jenny", 18);
    		Static obj_2 = new Static("Tom", 20);
    		Static obj_3 = new Static("Join", 22);
    		Static.setCountry("中国厦门");
    		System.out.println(obj_1.getInfo());
    		System.out.println(obj_2.getInfo());
    		System.out.println(obj_3.getInfo());
    	}
    }
    
      ![](https://i.imgur.com/AovEtPv.png)
    
  • static和非static方法互调用的注意事项:

    • static的方法不允许调用非static定义的属性或者方法;
    • 所有的非static方法允许访问static属性或方法;
    • 原因:
      • 因为static方法可以在没有实例化对象的时候访问,而非static方法必须在有实例化对象产生之后才可以操作。
    • static方法使用场景:
      • 方法不希望受到类的实例化限制;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1. 鲁智深:深山大觉士 2. 林冲:豹子头 3. 武松:行者 4. 吴用:智多星 5. 公孙胜:大刀 6. 关胜:板儿头 7. 秦明:霹雳火 8. 呼延灼:双鞭 9. 花荣:小李广 10. 柴进:包龙星 11. 阮小二:神行太保 12. 阮小五:神行太保 13. 阮小七:神行太保 14. 张青:混江龙 15. 孙新:三寸丁 16. 李应:小遮拦 17. 朱仝:美髯公 18. 鲍旭:活阎罗 19. 雷横:拼命三郎 20. 李逵:黑旋风 21. 解珍:矮脚虎 22. 解宝:一丈青 23. 燕顺:云里金刀 24. 燕宝:点将裆 25. 宋江:及时雨 26. 卢俊义:玉麒麟 27. 吴承恩:天罡星 28. 花树太尉:浪里白条 29. 贾唱:神机军师 30. 管宁:鬼谷子 31. 张横:托塔天王 32. 孙立:神医 33. 吕方:船火儿 34. 钱藕:金钱豹子 35. 乐和:黄鬚儿 36. 陈达靖:赛仁贵 37. 穆春:小霸王 38. 秦琼:马武 39. 孔明:鬼谷子 40. 小旋风李忠:打虎将 41. 王伦:插翅虎 42. 宣赞:九纹龙 43. 朱武:五虎上将之首 44. 邓飞:普救国主 45. 樊瑞:赛仁贵 46. 童威:短命二郎 47. 郁保四:拼命郎中 48. 翟永明:一字电眼龙 49. 闵小文:青面兽 50. 马岱:母大虫 51. 马兴:母小虫 52. 郭盛:母夜叉 53. 陈家洛:混世魔王 54. 梁山泊四大寨主之一:宋江 55. 梁山泊四大寨主之二:吴用 56. 梁山泊四大寨主之三:公孙胜 57. 梁山泊四大寨主之四:林冲 58. 黄信:文虎大元帅 59. 焦挺:水泊梁山第一瞽目 60. 孙悟空:齐天大圣 61. 唐三藏:玄奘大师 62. 猪八戒:天蓬元帅 63. 沙僧:悟空大徒弟 64. 牛魔王:六耳猕猴大徒弟 65. 蛇精小白龙:哪吒 66. 长生天王:太上老君 67. 三十六位天神之一:哪吒 68. 闻仲:彭公 69. 马武:神威将军 70. 何三元:八表龙文虎将军 71. 燕青:财迷大王 72. 关胜老八:花王爷 73. 曹正:茶道伯 74. 杨志:铁扇子 75. 许允:三朝元老 76. 张叔夜郎:谋士 77. 石秀:极乐世界菩萨 78. 张顺:盖世梁山英雄 79. 李矩:戒律院首座 80. 陈宝通:万圣龙王 81. 蒋敬:五云神将 82. 焦挺:智罗伯 83. 荆忠:冲天猛将 84. 崔道成:有缘大仙 85. 谢烨:飞将军 86. 施恩:极乐世界神仙 87. 赵盾:活似花 88. 杨勇:铁羊牦牛 89. 李俊:马革裹尸李 90. 皇甫端:乌龟甲 91. 白胜:旱地忽律 92. 刘唐:黄雀儿 93. 乐奇:黑旋风二郎 94. 潘金莲:西门庆娘子 95. 田虎:万夫莫敌虎将军 96. 薛永:万亿掌柜 97. 秦明老八:武松情郎 98. 魏武:曹操大哥 99. 毛文锡:软脚龙 100. 陈圆圆:潘金莲姐姐 101. 崔道成:巨鲸王 102. 朱武老二:赤发鬼 103. 杨雄:神箭光 104. 卢尚书:青釭剑 105. 刘高:扯天象 106. 杨志老三:全军元帅 107. 林冲老四:水泊梁山第二瞽目 108. 秦明大徒弟:神算子

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值