2018年Java編程學(xué)習(xí)類的方法總結(jié)-目前網(wǎng)上最完整9種方法總結(jié)

Java是一種可以撰寫跨平臺應(yīng)用軟件的面向?qū)ο蟮某绦蛟O(shè)計(jì)語言。Java 技術(shù)具有卓越的通用性、高效性、平臺移植性和安全性,廣泛應(yīng)用于PC、數(shù)據(jù)中心、游戲控制臺、科學(xué)超級計(jì)算機(jī)、移動電話和互聯(lián)網(wǎng),同時擁有全球最大的開發(fā)者專業(yè)社群。

給你學(xué)習(xí)路線:html-css-js-jq-javase-數(shù)據(jù)庫-jsp-servlet-Struts2-hibernate-mybatis-spring4-springmvc-ssh-ssm

要么不學(xué),要么就學(xué)出個樣來。機(jī)會屬于有準(zhǔn)備的人。自己不優(yōu)秀,靠誰都沒用

定義一個完整的類方法,需要六個步驟,也就是六大部分。也

因?yàn)檫@六個部分的不同而可以大概分為9種方法。 這是我一整天作圖整理出來的。可能有些漏缺錯誤,希望大家能幫忙糾正。來源于網(wǎng)絡(luò)出處不詳,感謝原作者。

小編推薦一個學(xué)Java的學(xué)習(xí)裙【 六五零,五五四,六零七 】,無論你是大牛還是小白,是想轉(zhuǎn)行還是想入行都可以來了解一起進(jìn)步一起學(xué)習(xí)!裙內(nèi)有開發(fā)工具,很多干貨和技術(shù)資料分享!

一,一般方法

二,構(gòu)造方法

三,無參無返回值的方法。

四,無參有返回值的方法。

五,有參無返回值的方法。

六,有參有返回值的方法。

七,靜態(tài)方法。

八,非靜態(tài)方法。

九,抽象方法。

另外在加上

方法的重載

方法的重寫。

方法的調(diào)用。

可能是目前關(guān)于java 方法最完整的總結(jié)了。當(dāng)然還有例如有參的構(gòu)造方法等一些組合,就沒必要一一列舉了。后面會有些許介紹,后期再繼續(xù)編輯優(yōu)化。

第一步,訪問修飾符。參考前面寫的成員變量與局部變量。就不羅嗦了。

第二步,關(guān)鍵詞。

關(guān)鍵詞主要有static和abstract兩個關(guān)鍵詞。

有static修飾的方法叫做靜態(tài)方法。沒有的則叫非靜態(tài)方法。

其中我們最熟悉的main方法就有static 修飾。這個方法也是我最不熟悉搞不懂的方法。

static方法一般稱作靜態(tài)方法,由于靜態(tài)方法不依賴于任何對象就可以進(jìn)行訪問,因此對于靜態(tài)方法來說,是沒有this的。因?yàn)樗灰栏接谌魏螌ο?,既然都沒有對象,就談不上this了。

1.其實(shí)可以理解為此類所共有的方法。我理解的就是類方法。所以可以直接用類名調(diào)用。至于為何有這種麻煩的靜態(tài)方法以及靜態(tài)變量的存在,我認(rèn)為有兩個原因。

第一,

靜態(tài)變量/方法只需要初始化一次,而不像其他的每調(diào)用一次就要初始化一次??梢詼p少內(nèi)存空間的使用。

靜態(tài)的可以被直接訪問而不實(shí)例化自身再訪問,大型程序考慮內(nèi)存占用問題 超小程序直接靜態(tài)化,更加方便些。

第二,不知道大家注意到main方法以及后面類與對象沒有。

在后面一大堆父子類。都是沒有main方法的。更不會有一大堆的靜態(tài)方法,靜態(tài)方法常駐內(nèi)存,會大量消耗內(nèi)存空間。 所以基本上只有一個測試類有main方法以及static修飾的。這樣的方法可以直接測試。如果你沒有必要去訪問對象的外部,那么就使你的方法成為靜態(tài)方法。她會被更快地調(diào)用。

這些算是程序的優(yōu)化吧。

3. 靜態(tài)方法中不能直接調(diào)用非靜態(tài)方法,需要通過對象來訪問非靜態(tài)方法。如:

4. 并且由于這個特性,在靜態(tài)方法中不能訪問類的非靜態(tài)成員變量和非靜態(tài)成員方法,因?yàn)榉庆o態(tài)成員方法/變量都是必須依賴具體的對象才能夠被調(diào)用。

另一個關(guān)鍵字。Abstract。被他修飾的方法叫做抽象方法。

抽象方法:在類中沒有方法體的方法,就是抽象方法。

抽象方法必須被實(shí)現(xiàn)!也就是被繼承。所以他所在的類必然是父類。一定有一個子類。

如果一個子類沒有實(shí)現(xiàn)父類中的抽象方法,則子類也成為了一個抽象類!

抽象方法必須被重寫。從沒有方法體變?yōu)橛芯唧w的方法體。

抽象類不能被實(shí)例化。

抽象方法只需聲明,而不需實(shí)現(xiàn)某些功能。就好像大蒙古國的海軍一樣。只需要有名頭,不需要有艦隊(duì)。

第三步,返回值有否?

如果有返回值就是有返回值方法。

有返回值,則寫具體返回類型,比如string int 等,這就是java強(qiáng)類型的一個表現(xiàn)。

而且方法體里面要有return 符合返回類型的變量名。內(nèi)外一致。而且只能返回一個數(shù)據(jù)。如果是多個數(shù)據(jù)的話,還是多種類型的數(shù)據(jù)的話,第一拆分這個方法成為更加簡單的精簡方法。第二就是用數(shù)組來接受這些數(shù)據(jù)。

為何有放回類型的方法呢,因?yàn)樗祷氐臄?shù)據(jù)必然被其他方法采用,甚至多次采用。加工處理。所以就需要這個數(shù)據(jù),他不是最終的結(jié)果。所以要有返回類型,這樣就必須用變量來進(jìn)行接受。

沒有就是無返回值方法。尅用void修飾。

因?yàn)檫@是最終的處理結(jié)果。所以無需再接受處理,直接用println輸出就行。

返回類型與無返回值類型的方法的使用

public String display(){

String aa="影片名字:"+name+" 類型:"+type+" 導(dǎo)演:"+daoyan+" 主演:"+zhuyan;

return aa;}

/*反回string類型aa。方法名前面必須添加想要返回的類型。這種方法有些限制。比如一次只能返回一種類型。不可能在string 后面加一個int,或者再加一個其他類型。/

下面的一句就是創(chuàng)建的對象中調(diào)用的方法。

System.out.println(f.display());

}

//方法名前面的void就意味著沒有返回值,也就不用設(shè)置返回的類型。下面一句是就是創(chuàng)建的對象中調(diào)用的方法: f.display1();

前面帶有返回類型的方法只有返回?cái)?shù)據(jù),而沒有輸出數(shù)據(jù),所以調(diào)用的時候還必須添加輸出的方法。后面沒有返回類型的方法已經(jīng)封裝了輸出的方法,所以創(chuàng)建對象的時候直接調(diào)用方法就行。而不能在加上System.out.println(f.display1());輸出方法再套一個輸出方法。

小編推薦一個學(xué)Java的學(xué)習(xí)裙【 六五零,五五四,六零七 】,無論你是大牛還是小白,是想轉(zhuǎn)行還是想入行都可以來了解一起進(jìn)步一起學(xué)習(xí)!裙內(nèi)有開發(fā)工具,很多干貨和技術(shù)資料分享!

第四步。方法的名稱。

為了見名知意,也就是可以自定義。盡量有意義,第一樣就明白是什么意思,代表了什么,而且盡量用英文,如果是詞組的話,第二個單詞首字母大寫。

既然可以自定義,就有了一個特殊的方法名。與類名相同的方法——構(gòu)造方法。 構(gòu)造方法的作用就在于一下子可以繼承多個屬性。對于大型方法非常實(shí)用。同樣因?yàn)橐^承多個屬性,必然參數(shù)很多。但是連void也沒有。

當(dāng)然系統(tǒng)還有一個默認(rèn)的隱藏的無參構(gòu)造方法。也就是說每一個類中必然有一個無參構(gòu)造方法。只不過平常隱藏起來了。一旦出現(xiàn)有參的構(gòu)造方法,就必須將無參的構(gòu)造方法也寫出來。

構(gòu)造方法雖然可以和其他方法組合,但是不能被static、final、synchronized、abstract和native修飾。我也不知道這個的意義所在。

當(dāng)然官方定義說構(gòu)造方法的主要作用是數(shù)據(jù)的初始化。我的理解是,既然要被繼承,公有的屬性肯定不可能賦值,要到子類實(shí)例化才能賦值。但是確實(shí)有一些屬性是特殊的,而且必須在一定范圍內(nèi)才有效,為了防止賦予非法值。

比如性別中性,歲數(shù)300歲等等。必須設(shè)定一個默認(rèn)的安全值。可是又達(dá)不到finally的一個值得地步。這才有了構(gòu)造方法大顯身手的意義。

通過類創(chuàng)建一個對象。如果類比較龐大,屬性比較多,方法比較多。記憶就會比較困難,很容易落下什么。而且一個個調(diào)用屬性和方法很麻煩,能不能一下子全部調(diào)用過來。省的拉下了。這就是構(gòu)造方法帶來的好處。

既然是調(diào)用的整個類的屬性與方法,那么方法名就與類名保持一致。

而且因?yàn)閷傩远喾N多樣。有int類型,有string類型。這樣你就無法確定返回值是哪個類型,干脆就不定義返回類型。

第五步,參數(shù)列表。

為何要有參數(shù)。因?yàn)楝F(xiàn)實(shí)是多姿多彩的,需要很多的形容詞來修飾,而在編程中就需要很多的變量來修飾。比如:

public void sleep(){

System.out.println("我在睡覺");

}

需要一個變量來修飾睡覺,于是用一個參數(shù)。實(shí)際上就是定義一個變量類型。

public void sleep(String i){

System.out.println("我在"+i+"睡覺");

}

需要兩個變量,于是用兩個參數(shù)。實(shí)際上就是定義兩個變量類型。

public void sleep(String i,int j){

System.out.println("我在"+i+"睡覺"+j+"點(diǎn)起來")

有時需要更多的修飾,于是就有了更多的參數(shù)。這就是參數(shù)的存在意義。

通過類創(chuàng)建一個對象。如果類比較龐大,屬性比較多,方法比較多。記憶就會比較困難,很容易落下什么。而且一個個調(diào)用屬性和方法很麻煩,能不能一下子全部調(diào)用過來。省的拉下了。這就是構(gòu)造方法帶來的好處。

既然是調(diào)用的整個類的屬性與方法,那么方法名就與類名保持一致。

而且因?yàn)閷傩远喾N多樣。有int類型,有string類型。這樣你就無法確定返回值是哪個類型,干脆就不定義返回類型。

根據(jù)參數(shù)的有無可以分為有參方法與無參方法,同樣可以喝返回值方法自由組合,構(gòu)成有無參數(shù)有無返回值類型的方法。當(dāng)然還有其他的組合。

第六步。方法體。

主要的區(qū)別就在于有無。也就是有具體的方法體以及沒有方法體。甚至都可以沒有大括號。小括號就能組成一個方法。 最簡單的方法就是方法名();

方法重載:從構(gòu)造方法里面我們發(fā)現(xiàn)了方法的重載,方法名相同, 形參不同。而形參的不同又表示在: 1). 形參的個數(shù)不同 2). 形參的類型不同 3). 形參的順序不同。其實(shí)在調(diào)用Scanner的時候很類似,或者就是方法的重載。

Input.next()。這后面可以跟不同的數(shù)據(jù)類型,與此類似jdk幫助文檔的每一個方法有很多方法名相同,但是因?yàn)閿?shù)據(jù)類型不同而生出區(qū)別的不同方法,這些只是因?yàn)檎{(diào)用接受的收據(jù)類型不同而成為同名的方法重載。這也跟java是強(qiáng)類型語言有直接關(guān)系。

從這里我們也可以明白方法重載的意義了。就是接受不同的數(shù)據(jù)類型,接受不同數(shù)量的數(shù)據(jù)。完全沒必要挨個的定義方法名。在大型類中,方法少了還好說,多了光是起名字就要耗費(fèi)大量腦細(xì)胞。

方法重寫。

出現(xiàn)在父子繼承類當(dāng)中。類與對象當(dāng)中,對象是類的實(shí)現(xiàn),實(shí)例化。子類是父類的實(shí)例化。父類中的方法只需要一個存在的概念。而到了子類當(dāng)中就必然要求根據(jù)子類的不同而出現(xiàn)不同的方法實(shí)現(xiàn)。這就是方法的重寫,不過是為了更好的適用于子類而已就好像螞蟻到了中國就必須與中國實(shí)際相結(jié)合,做出佛.教中國化的改良一樣,現(xiàn)在世界上也沒有了佛.教,沒了螞蟻,而只有中國才有,呵呵題外話。有助大家理解。

這樣一來重載出現(xiàn)在同類中,重寫出現(xiàn)在繼承父子類中。知道了這點(diǎn),明白了存在的意義。才好記憶他們的其他區(qū)別。

方法的調(diào)用:

方法就好比武.器,屬性就好比子.彈。制造出來就是讓那來用的。不同的槍配不同的子彈,不同的搭配組合出來的效果不一樣。首先你就要會用。步.槍與機(jī).槍的用法注意事項(xiàng)絕對不一樣。橡膠.彈與穿.甲彈的使用方法也絕對不同。

不同的方法與變量的使用也絕對不同。

就方法的調(diào)用來說,基本上就三種。

第一。本類中的諸多方法之間一般可以互相直接拿來使用。當(dāng)然因?yàn)樾揎椃臋?quán)限不同。作用域可能不同。被static修飾的方法也可以直接拿來用。

第二種,間接使用。

在本類中用this調(diào)用。在父子類中用super調(diào)用。

第三,沒有明顯關(guān)系的類中。就必須首先創(chuàng)建要用方法所在類的對象,用變量名接受,然后才能調(diào)用。其實(shí)就是new關(guān)鍵字的妙用。接觸最早的new就是new Scanner(System.in)。當(dāng)然這是系統(tǒng)的方法,我們一般都是自定義調(diào)用。通過實(shí)例化進(jìn)行調(diào)用是最廣泛的調(diào)用方法,可以說是萬金油式的方法。

第四,其實(shí)還有一種調(diào)用的方法就是調(diào)用系統(tǒng)封裝好的方法,導(dǎo)入系統(tǒng)方法,這個才是精華。就是import java.util.*;這個也是重要的方法包。

小編推薦一個學(xué)Java的學(xué)習(xí)裙【 六五零,五五四,六零七 】,無論你是大牛還是小白,是想轉(zhuǎn)行還是想入行都可以來了解一起進(jìn)步一起學(xué)習(xí)!裙內(nèi)有開發(fā)工具,很多干貨和技術(shù)資料分享!

作者一星期的醞釀總結(jié),七八個小時終于寫完了,光一個方法全圖就浪費(fèi)了我好幾個小時??隙ㄟ€有很多知識點(diǎn)沒有涉及到,以后會繼續(xù)編輯優(yōu)化。謝謝。如果還有錯漏,希望大家提出來。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 一、Java 簡介 Java是由Sun Microsystems公司于1995年5月推出的Java面向?qū)ο蟪绦蛟O(shè)計(jì)...
    子非魚_t_閱讀 4,562評論 1 44
  • 一:java概述:1,JDK:Java Development Kit,java的開發(fā)和運(yùn)行環(huán)境,java的開發(fā)工...
    ZaneInTheSun閱讀 2,812評論 0 11
  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語法,類相關(guān)的語法,內(nèi)部類的語法,繼承相關(guān)的語法,異常的語法,線程的語...
    子非魚_t_閱讀 34,697評論 18 399
  • 路過那座低矮平房,偶然間還是會發(fā)現(xiàn)那里堆放著一盆盆猶如雜草一樣的的綠植?!跋棺印痹?jīng)把它們視為寶貝的。 “瞎子”倒...
    譚曉熹閱讀 536評論 0 5
  • 一 、什么是用戶運(yùn)營? 用戶運(yùn)營是指什么?百度給出的答案是用戶運(yùn)營指以用戶為中心,遵循用戶的需求設(shè)置運(yùn)營活動與規(guī)則...
    長方格子筆記閱讀 375評論 0 0

友情鏈接更多精彩內(nèi)容