更新時(shí)間:2020-07-13 16:07:12 來(lái)源:動(dòng)力節(jié)點(diǎn) 瀏覽2287次
類(lèi)方法:又叫做靜態(tài)方法
對(duì)象方法:又叫實(shí)例方法,非靜態(tài)方法
訪問(wèn)一個(gè)對(duì)象方法,必須建立在有一個(gè)對(duì)象的前提的基礎(chǔ)上
訪問(wèn)類(lèi)方法,不需要對(duì)象的存在,直接就訪問(wèn)
步驟1:類(lèi)方法
類(lèi)方法:又叫做靜態(tài)方法
對(duì)象方法:又叫實(shí)例方法,非靜態(tài)方法
訪問(wèn)一個(gè)對(duì)象方法,必須建立在有一個(gè)對(duì)象的前提的基礎(chǔ)上
訪問(wèn)類(lèi)方法,不需要對(duì)象的存在,直接就訪問(wèn)
package?charactor;
?public?class?Hero?{
????public?String?name;
????protected?float?hp;
?
????//實(shí)例方法,對(duì)象方法,非靜態(tài)方法
????//必須有對(duì)象才能夠調(diào)用
????public?void?die(){
????????hp?=?0;
????}
?????
????//類(lèi)方法,靜態(tài)方法
????//通過(guò)類(lèi)就可以直接調(diào)用
????public?static?void?battleWin(){
????????System.out.println("battle?win");
????}?
????public?static?void?main(String[]?args)?{
???????????Hero?garen?=??new?Hero();
???????????garen.name?=?"蓋倫";
???????????//必須有一個(gè)對(duì)象才能調(diào)用
???????????garen.die();
????????????
???????????Hero?teemo?=??new?Hero();
???????????teemo.name?=?"提莫";
????????????
???????????//無(wú)需對(duì)象,直接通過(guò)類(lèi)調(diào)用
??????????Hero.battleWin();???????
????}
}
步驟2:調(diào)用類(lèi)方法
和訪問(wèn)類(lèi)屬性一樣,調(diào)用類(lèi)方法也有兩種方式
1.對(duì)象.類(lèi)方法
garen.battleWin();
2.類(lèi).類(lèi)方法
Hero.battleWin();
這兩種方式都可以調(diào)用類(lèi)方法,但是建議使用第二種類(lèi).類(lèi)方法的方式進(jìn)行,這樣更符合語(yǔ)義上的理解。
并且在很多時(shí)候,并沒(méi)有實(shí)例,比如在前面練習(xí)的時(shí)候用到的隨機(jī)數(shù)的獲取辦法
Math.random()
random()就是一個(gè)類(lèi)方法,直接通過(guò)類(lèi)Math進(jìn)行調(diào)用,并沒(méi)有一個(gè)Math的實(shí)例存在。
步驟3:什么時(shí)候設(shè)計(jì)對(duì)象方法,什么時(shí)候設(shè)計(jì)類(lèi)方法
如果在某一個(gè)方法里,調(diào)用了對(duì)象屬性,比如
public String getName(){
return name;
}
name屬性是對(duì)象屬性,只有存在一個(gè)具體對(duì)象的時(shí)候,name才有意義。如果方法里訪問(wèn)了對(duì)象屬性,那么這個(gè)方法,就必須設(shè)計(jì)為對(duì)象方法
如果一個(gè)方法,沒(méi)有調(diào)用任何對(duì)象屬性,那么就可以考慮設(shè)計(jì)為類(lèi)方法,比如
public static void printGameDuration(){
System.out.println("已經(jīng)玩了10分50秒");
}
printGameDuration打印當(dāng)前玩了多長(zhǎng)時(shí)間了,不和某一個(gè)具體的英雄關(guān)聯(lián)起來(lái),所有的英雄都是一樣的。這樣的方法,更帶有功能性色彩
步驟4:練習(xí)-類(lèi)方法
在一個(gè)類(lèi)方法中,直接調(diào)用一個(gè)對(duì)象方法,
比如在battleWin中調(diào)用die()
能否直接調(diào)用?為什么?
以上就是動(dòng)力節(jié)點(diǎn)java培訓(xùn)機(jī)構(gòu)的小編針對(duì)“編程基礎(chǔ)之Java類(lèi)方法”的內(nèi)容進(jìn)行的回答,希望對(duì)大家有所幫助,如有疑問(wèn),請(qǐng)?jiān)诰€咨詢(xún),有專(zhuān)業(yè)老師隨時(shí)為你服務(wù)。
相關(guān)閱讀
0基礎(chǔ) 0學(xué)費(fèi) 15天面授
有基礎(chǔ) 直達(dá)就業(yè)
業(yè)余時(shí)間 高薪轉(zhuǎn)行
工作1~3年,加薪神器
工作3~5年,晉升架構(gòu)
提交申請(qǐng)后,顧問(wèn)老師會(huì)電話(huà)與您溝通安排學(xué)習(xí)