Java中的 方法

一刃滓、什么是方法

  • 在我們的日常生活中酌媒,方法可以理解為要做某件事情欠痴,而采取的解決辦法。

  • 在java中秒咨,方法就是用來完成解決某件事情或?qū)崿F(xiàn)某個功能的辦法喇辽。

  • 對于以程序來說,方法是完成特定功能的雨席、相對獨立的程序段菩咨。

方法的特征是 =>()

二、方法的分類

(1)系統(tǒng)方法

在Java中陡厘,系統(tǒng)擁有自帶的系統(tǒng)方法

例如

System.out.println()
Arrays.toString()

這些方法都是Java開發(fā)工具包( jdk )提供好的系統(tǒng)方法

(2)自定義方法

自定義方法是我們根據(jù)需求抽米,自定義出能完成特定功能,解決問題的程序段

自定義方法的構(gòu)成:

[修飾符] 返回值類型 方法名稱([參數(shù)表]){
    //方法體
}

例如:

public static void play(){
    
}
public String play(Sting str){
    
}

三糙置、使用方法

(1)使用方法

jglz.jpeg

分別輸入兩個學生的語文和數(shù)學成績云茸,然后分別計算兩人總分。

未使用方法的做法:

public static void main(String[] args) {
    int chinese = 0;
    int math = 0;
    int sum = 0;
    //第一名學生成績
    Scanner scanner = new Scanner(System.in);
    System.out.println("請輸入語文成績");
    chinese = scanner.nextInt();
    System.out.println("請輸入數(shù)學成績");
    math = scanner.nextInt();
    sum = chinese + math;
    System.out.println("第一名學生總成績?yōu)椋?+sum);
    //第二名學生成績
    System.out.println("請輸入語文成績");
    chinese = scanner.nextInt();
    System.out.println("請輸入數(shù)學成績");
    math = scanner.nextInt();
    sum = chinese + math;
    System.out.println("第二名學生總成績?yōu)椋?+sum);
}

我們可以看到谤饭,相同的代碼我們用了兩遍标捺,就很冗余,而方法就是能夠幫助我們提高代碼的復用率揉抵,讓我們的代碼更加的簡潔高效亡容。

使用了方法的代碼

public static void getSum(){
    int chinese = 0;
    int math = 0;
    int sum = 0;
    Scanner scanner = new Scanner(System.in);
    System.out.println("請輸入語文成績");
    chinese = scanner.nextInt();
    System.out.println("請輸入數(shù)學成績");
    math = scanner.nextInt();
    sum = chinese + math;
    System.out.println("學生總成績?yōu)椋?+sum);
}

public static void main(String[] args) {
   getSum();
   getSum();
}

上面的代碼中,我們使用了getSum()方法來獲得學生的總成績功舀,每調(diào)用一次方法萍倡,就可以得到一個學生的總成績,減少了代碼冗余辟汰。

但是列敲,方法定義遵循功能單一原則阱佛,也就是一個方法只做一件事。所以戴而,上面的代碼是有缺陷的凑术。既有獲得總分,又要輸出所意,這是兩件事淮逊。

(2)設計方法的返回值

如果主調(diào)方法需要知道被調(diào)方法的處理結(jié)果,那么被調(diào)方法就需要設計成有返回值的方法

返回值的設計

  1. 在方法名前面寫返回值的類型
  2. 在方法體內(nèi)部使用return語句返回數(shù)據(jù)
  3. 主調(diào)方法通過賦值語句將方法返回值賦給變量
  4. 一個方法只能返回一個值

在上邊的例子中扶踊,我們發(fā)現(xiàn)了方法要遵循功能單一原則泄鹏,那么我們就不能把輸出放在getSum()方法里了。

我們可以單獨為輸出設計一個方法秧耗,在main方法里面輸出也行备籽,但是都要求我們知道被調(diào)方法的返回值

//被調(diào)方法
public static int getSum(){
    int chinese = 0;
    int math = 0;
    int sum = 0;
    Scanner scanner = new Scanner(System.in);
    System.out.println("請輸入語文成績");
    chinese = scanner.nextInt();
    System.out.println("請輸入數(shù)學成績");
    math = scanner.nextInt();
    sum = chinese + math;
    return sum;
}
//主調(diào)方法
public static void main(String[] args) {
    System.out.println("第一位學生成績?yōu)?+getSum());
    System.out.println("第二位學生成績?yōu)?+getSum());
}

我們從主調(diào)方法的輸出語句中調(diào)用被調(diào)方法,得到了被調(diào)方法的返回值sum總分分井。

(3)方法中常見的問題

(1)如果方法定義為void车猬,表示不返回值,此時return后面不允許寫返回的數(shù)據(jù)

(2)方法返回值定義了返回什么類型的值尺锚,就必須使用return返回什么類型的值珠闰。

(3)當方法沒有返回值時,不允許主調(diào)方法接收返回值瘫辩。

(4)返回數(shù)據(jù)的類型要與返回值類型一致伏嗜。

(5)使用if語句時,如果條件a>0,語句內(nèi)return杭朱,但是沒有寫出<=0的條件阅仔,則會出現(xiàn)錯誤,必須要講條件都考慮到弧械。

(6)方法遇到return后就結(jié)束了方法八酒,后面的語句沒有機會執(zhí)行。

(4)形式參數(shù)與實際參數(shù)

主調(diào)方法提供的參數(shù)是實際參數(shù)

被調(diào)方法接收數(shù)據(jù)的參數(shù)是形式參數(shù)

主調(diào)方法的實參傳遞給被調(diào)方法的形參刃唐。按照個數(shù)羞迷,順序依次賦值

(5)方法參數(shù)引用類型和基本數(shù)據(jù)類型的區(qū)別

傳遞基本類型參數(shù)時:

當方法調(diào)用時,若傳遞基本類型的值画饥,那么在被調(diào)方法內(nèi)部修改了形參的值衔瓮,則在主調(diào)方法中的實參不受影響。

傳遞引用類型參數(shù)時:

當方法調(diào)用時抖甘,若傳遞引用值(內(nèi)存地址)热鞍,那么在被調(diào)方法內(nèi)部修改了形參指向內(nèi)存空間的值,那么主調(diào)方法中的實參指向空間的值也被修改了。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末薇宠,一起剝皮案震驚了整個濱河市偷办,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌澄港,老刑警劉巖椒涯,帶你破解...
    沈念sama閱讀 216,651評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異回梧,居然都是意外死亡废岂,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,468評論 3 392
  • 文/潘曉璐 我一進店門狱意,熙熙樓的掌柜王于貴愁眉苦臉地迎上來湖苞,“玉大人,你說我怎么就攤上這事详囤√惶洌” “怎么了?”我有些...
    開封第一講書人閱讀 162,931評論 0 353
  • 文/不壞的土叔 我叫張陵纬纪,是天一觀的道長。 經(jīng)常有香客問我滑肉,道長包各,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,218評論 1 292
  • 正文 為了忘掉前任靶庙,我火速辦了婚禮问畅,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘六荒。我一直安慰自己护姆,他們只是感情好,可當我...
    茶點故事閱讀 67,234評論 6 388
  • 文/花漫 我一把揭開白布掏击。 她就那樣靜靜地躺著卵皂,像睡著了一般。 火紅的嫁衣襯著肌膚如雪砚亭。 梳的紋絲不亂的頭發(fā)上灯变,一...
    開封第一講書人閱讀 51,198評論 1 299
  • 那天,我揣著相機與錄音捅膘,去河邊找鬼添祸。 笑死,一個胖子當著我的面吹牛寻仗,可吹牛的內(nèi)容都是我干的刃泌。 我是一名探鬼主播,決...
    沈念sama閱讀 40,084評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼耙替!你這毒婦竟也來了亚侠?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,926評論 0 274
  • 序言:老撾萬榮一對情侶失蹤林艘,失蹤者是張志新(化名)和其女友劉穎盖奈,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體狐援,經(jīng)...
    沈念sama閱讀 45,341評論 1 311
  • 正文 獨居荒郊野嶺守林人離奇死亡钢坦,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,563評論 2 333
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了啥酱。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片爹凹。...
    茶點故事閱讀 39,731評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖镶殷,靈堂內(nèi)的尸體忽然破棺而出禾酱,到底是詐尸還是另有隱情,我是刑警寧澤绘趋,帶...
    沈念sama閱讀 35,430評論 5 343
  • 正文 年R本政府宣布颤陶,位于F島的核電站,受9級特大地震影響陷遮,放射性物質(zhì)發(fā)生泄漏滓走。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,036評論 3 326
  • 文/蒙蒙 一帽馋、第九天 我趴在偏房一處隱蔽的房頂上張望搅方。 院中可真熱鬧,春花似錦绽族、人聲如沸姨涡。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,676評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽涛漂。三九已至,卻和暖如春娄蔼,著一層夾襖步出監(jiān)牢的瞬間怖喻,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,829評論 1 269
  • 我被黑心中介騙來泰國打工岁诉, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留锚沸,地道東北人。 一個月前我還...
    沈念sama閱讀 47,743評論 2 368
  • 正文 我出身青樓涕癣,卻偏偏與公主長得像哗蜈,于是被迫代替她去往敵國和親前标。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,629評論 2 354

推薦閱讀更多精彩內(nèi)容

  • 目錄結(jié)構(gòu) ?1. 方法概述?2. 方法分類(實例方法和類方法)?3. 值傳遞方法?4. 實參與形參?5. 傳遞方法...
    八匹馬zbj閱讀 55評論 0 1
  • 1. 方法概述 1.1 方法的概念 ? 方法(method)是將具有獨立功能的代碼塊組織成為一個整體距潘,使其具有...
    黑夜中的黑眼睛閱讀 219評論 0 1
  • 方法概述 所謂方法炼列,就是用來解決一類問題的代碼的有序組合,是一個功能模塊作用:封裝重復邏輯音比,邏輯更清晰語法格式: ...
    若兮緣閱讀 361評論 0 9
  • 1.什么是方法俭尖? Java方法是語句的集合,它們在一起執(zhí)行一個功能洞翩。方法是解決一類問題的步驟的有序集合方法包含于類...
    檜柒閱讀 235評論 0 0
  • Java中的方法 Java中的方法 方法聲明 類的方法必須包含以下3個部分稽犁。 1:方法的返回值類型 2:方法的名稱...
    Chinawmj閱讀 168評論 0 0