java溫習*(4):static關鍵字的應用---靜態方法

應用二:static + 成員方法 vs 成員方法

概念:

靜態方法:用static修飾的成員方法,通常也稱爲靜態方法、類方法、全局方法等。

非靜態方法:沒有被static修飾的成員方法,也稱爲叫做非靜態方法、實例方法,對象方法等。

特徵:

與靜態成員相似,靜態方法屬於整個類的,由類所進行維護,優先於對象而存在,因此可以通過類名和對象名兩種方式訪問,也因此在靜態方法中無法直接訪問同類中的非靜態成員。

示例:

定義國產車類CarDemo,分別包含靜態屬性firm,對象屬性color、price ,靜態方法display。
定義測試類CarTest,針對CarDemo進行測試
備註:此處由於展示篇幅有限,暫不考慮屬性的訪問權限

- 當display方法中分別訪問類內靜態及非靜態成員時:

錯誤提示:不能在靜態方法中應出現this關鍵字

- 當修改方法內部,去掉this

 

- 修訂display方法體,成功訪問類內靜態及非靜態方法

 

總結:

1、靜態方法中可以通過“類名.成員”或“成員”的方式訪問類內靜態成員/靜態方法

2、不允許直接訪問本類中的非靜態成員/非靜態方法

3、可以通過實例化產生本類對象,通過“對象.成員”的方式訪問類內非靜態成員/非靜態方法。

此時輸出結果爲:

總結:
1、類外可應用“類名.成員方法”或“對象名.成員方法”的方式訪問非私有靜態方法

2、應用“對象名.成員方法”時會出現警告,但不影響程序運行。

- 類中添加非靜態方法run,並在其中訪問類內靜態成員

 

總結:

1、非靜態方法可以通過“類名.成員法”或“成員”或“this.成員”的方式訪問類內靜態成員/靜態方法

2、應用“this.靜態成員/靜態方法”時會出現警告,但不影響程序運行。

- 分別在run和display方法中添加靜態局部變量test

錯誤提示:test前的static修飾符無效,即不允許在方法內定義靜態變量。

 

當去掉局部變量前面的static,正常顯示

總結:
不允許在方法內部定義靜態局部變量。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章