第三次学JAVA再学不好就吃翔(part26)--static关键字
生活随笔
收集整理的這篇文章主要介紹了
第三次学JAVA再学不好就吃翔(part26)--static关键字
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
學習筆記,僅供參考
文章目錄
- 面向對象
- static關鍵字
- 靜態關鍵字的特點
- 注意事項
面向對象
static關鍵字
- 先看一個例子
輸出:
Huang已經10個月啦! Bai已經10個月啦!靜態關鍵字的特點
- 靜態關鍵字的特點
- 隨著類的加載而加載;
- 優先于對象存在;
- 被類的所有對象共享。所以如果某個成員變量是被所有對象共享的,那么它就應該定義為靜態的,共性用靜態,特性用非靜態;
- 靜態可以通過類名調用
- 舉個例子
輸出:
9注意事項
-
注意事項
-
靜態是隨著類的加載而加載,靜態比對象先存在,this是隨著對象的創建而存在,非靜態的成員只能通過對象(this)來訪問,而不能通過類名直接訪問。
-
靜態方法只能訪問靜態的成員變量和靜態的成員方法,而非靜態的方法可以訪問靜態的也可以訪問非靜態的。
-
- 舉個例子
我們分別利用靜態和非靜態方法訪問靜態和非靜態成員。
非靜態方法:
class Bunny0601A {public static void main(String[] args) {Bunny b = new Bunny();b.print1();} }class Bunny {String name;static int age;public void print1() { //非靜態的成員方法,既可以訪問靜態的成員也可以訪問非靜態的成員System.out.println(name);System.out.println(age);} }輸出:
null 0靜態方法:
class Bunny0601A {public static void main(String[] args) {Bunny.print2();} }class Bunny {String name;static int age;public static void print2() { //靜態的成員方法System.out.println(name); //靜態的成員方法不能訪問非靜態的成員System.out.println(age);} }報錯:
---------- javac ---------- Bunny0601A.java:18: 錯誤: 無法從靜態上下文中引用非靜態 變量 nameSystem.out.println(name); //靜態的成員方法不能訪問非靜態的成員^ 1 個錯誤Output completed (2 sec consumed) - Normal Termination將靜態方法中非靜態變量刪掉:
class Bunny0601A {public static void main(String[] args) {Bunny.print2();} }class Bunny {String name;static int age;public static void print2() { //靜態的成員方法System.out.println(age);} }輸出:
0總結
以上是生活随笔為你收集整理的第三次学JAVA再学不好就吃翔(part26)--static关键字的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 几岁的身高标准
- 下一篇: 第三次学JAVA再学不好就吃翔(part