Java 類方法
阿新 • • 發佈:2018-12-16
類方法: 又叫做靜態方法
物件方法: 又叫例項方法,非靜態方法
訪問一個物件方法,必須建立在有一個物件的前提的基礎上
訪問類方法,不需要物件的存在,直接就訪問
步驟 1 : 類方法
類方法: 又叫做靜態方法
物件方法: 又叫例項方法,非靜態方法
訪問一個物件方法,必須建立在有一個物件的前提的基礎上
訪問類方法,不需要物件的存在,直接就訪問
package charactor; public class Hero { public String name; protected float hp; //例項方法,物件方法,非靜態方法 //必須有物件才能夠呼叫 public void die(){ hp = 0; } //類方法,靜態方法 //通過類就可以直接呼叫 public static void battleWin(){ System.out.println("battle win"); } public static void main(String[] args) { Hero garen = new Hero(); garen.name = "蓋倫"; //必須有一個物件才能呼叫 garen.die(); Hero teemo = new Hero(); teemo.name = "提莫"; //無需物件,直接通過類呼叫 Hero.battleWin(); } }
步驟 2 : 呼叫類方法
和訪問類屬性一樣,呼叫類方法也有兩種方式
1. 物件.類方法
garen.battleWin();
2. 類.類方法
Hero.battleWin();
這兩種方式都可以呼叫類方法,但是建議使用第二種 類.類方法 的方式進行,這樣更符合語義上的理解。
並且在很多時候,並沒有例項,比如在前面練習的時候用到的隨機數的獲取辦法
Math.random()
random()就是一個類方法,直接通過類Math進行呼叫,並沒有一個Math的例項存在。
步驟 3 : 什麼時候設計物件方法,什麼時候設計類方法
如果在某一個方法裡,呼叫了物件屬性,比如
public String getName(){
return name;
}
name屬性是物件屬性,只有存在一個具體物件的時候,name才有意義。 如果方法裡訪問了物件屬性,那麼這個方法,就必須設計為物件方法
如果一個方法,沒有呼叫任何物件屬性,那麼就可以考慮設計為類方法,比如
public static void printGameDuration(){
System.out.println("已經玩了10分50秒");
}
printGameDuration 列印當前玩了多長時間了,不和某一個具體的英雄關聯起來,所有的英雄都是一樣的。 這樣的方法,更帶有功能性色彩
步驟 4 : 練習-類方法
在一個類方法中,直接呼叫一個物件方法,
比如在battleWin中呼叫die()
能否直接呼叫? 為什麼?