国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Java方法詳解

voidking / 2638人閱讀

摘要:一個(gè)方法中最多只只能包含一個(gè)參數(shù)可變的形參。如果同一個(gè)類中包含了兩個(gè)或兩個(gè)以上方法的方法名相同,但形參列表不同,則被稱為方法重載。形參列表,當(dāng)調(diào)用方法時(shí),系統(tǒng)會(huì)根據(jù)傳入的實(shí)參列表匹配。

方法是類或?qū)ο蟮男袨樘卣鞯某橄螅椒ㄊ穷惢驅(qū)ο笞钪匾慕M成部分。值得指出的是Java里的方法不能獨(dú)立存在,所有的方法都必須定義在類里。
不論是從定義方法的語法來看,還是從方法的語法功能來看,都不難發(fā)現(xiàn)方法和函數(shù)之間的相似性。
實(shí)際上,方法確實(shí)是由傳統(tǒng)的函數(shù)發(fā)展而來的,方法與傳統(tǒng)的函數(shù)有著顯著不同:在結(jié)構(gòu)化編程語言里,函數(shù)是一等公民,整個(gè)軟件由一個(gè)個(gè)函數(shù)組成;在面向?qū)ο缶幊膛c壓力,類才是一等公民,整個(gè)系統(tǒng)由一個(gè)個(gè)的類組成。

在同一個(gè)類的一個(gè)方法調(diào)用另外一個(gè)方法時(shí),如果被調(diào)方法是普通方法則默認(rèn)使用this作為調(diào)用者;如果被調(diào)用方法是靜態(tài)方法,則默認(rèn)使用類作為調(diào)用者。也就是說,表面上看起來某些方法可以被獨(dú)立執(zhí)行,但實(shí)際上還是使用this或者類來作為調(diào)用者。

方法的參數(shù)傳遞機(jī)制

如果聲明方法時(shí)包含了形參聲明,則調(diào)用方法時(shí)必須給這些形參指定參數(shù)值,調(diào)用方法時(shí)必須給這些形參指定采納數(shù)值,調(diào)用方法時(shí)實(shí)際傳給形參的參數(shù)值也被成為實(shí)參。
Java里方法的參數(shù)傳遞方式只有一種:值傳遞。所謂值傳遞,就是將實(shí)際參數(shù)值得副本傳入方法體內(nèi),而參數(shù)本身不會(huì)受到任何影響。

public class Test {
    public static void swap(int a, int b) {
        int temp = a;
        a = b;
        b = temp;
        System.out.println("交換時(shí)a的值是" + a + ";b的值是" + b);
    }
    public static void main(String[] args) {
        int a = 6;
        int b = 9;
        swap(a,b);
        System.out.println("交換后a的值是" + a + ";b的值是" + b);
    }
}

交換時(shí)a的值是9;b的值是6
交換后a的值是6;b的值是9
從上面運(yùn)行結(jié)果可以看出,swap()方法里的變量a和b,并不是swap方法里的a和b.swap()方法的a和b只是main方法里變量a和b的復(fù)制品。

上面舉的例子是基本類型的參數(shù)傳遞,Java對(duì)于引用類型的參數(shù)傳遞,一樣采用的是值傳遞方式。但許多出初學(xué)者可能對(duì)引用類型的參數(shù)傳遞產(chǎn)生一些誤會(huì)。請(qǐng)看下面的代碼:

class DataWrap {
    int a;
    int b;
}

public class Test {
    public static void swap(DataWrap dw) {
        int tmp = dw.a;
        dw.a = dw.b;
        dw.b = tmp;
        System.out.println("swap方法里a的成員變量的值是" + dw.a + ";b成員變量的值是" + dw.b);

    }
    public static void main(String[] args) {
        DataWrap dw = new DataWrap();
        dw.a = 6;
        dw.b = 9;
        swap(dw);
        System.out.println("交換結(jié)束后,a成員變量的值是" + dw.a + ";b成員變量的值是" + dw.b);
    }
}

swap方法里a的成員變量的值是9;b成員變量的值是6
交換結(jié)束后,a成員變量的值是9;b成員變量的值是6
上面這種參數(shù)傳遞的方式是不折不扣的值傳遞方式,系統(tǒng)一樣復(fù)制了dw的副本傳入swap()方法,但關(guān)鍵在于dw只是一個(gè)引用變量,所以系統(tǒng)復(fù)制了dw變量,但并未復(fù)制DataWrap對(duì)象。
當(dāng)程序在swap()方法中操作dw參數(shù)時(shí),由于dw只是一個(gè)引用變量,故實(shí)際操作的還是堆內(nèi)存中的DataWrap對(duì)象。

形參個(gè)數(shù)可變的方法

如果在定義方法時(shí),在最后一個(gè)形參類型后加三點(diǎn)(...),則表明該形參數(shù)可以接受多個(gè)參數(shù)值,多個(gè)參數(shù)值被當(dāng)做數(shù)組傳入。

public class Test {
    public static void show(int a, String...books) {
        for (String tmp: books) {
            System.out.println(tmp);
        }
    }
    public static void main(String[] args) {
        show(5, "Java", "Pyton", "JavaScript");
    }
}

Java
Pyton
JavaScript
從上面show方法代碼體來看,形參個(gè)數(shù)可變的參數(shù)本質(zhì)就是一個(gè)數(shù)組參數(shù),也就是說,下面兩個(gè)方法簽名的效果簽名完全一樣。
個(gè)數(shù)可變的形參只能處于形參列表的最后。一個(gè)方法中最多只只能包含一個(gè)參數(shù)可變的形參。個(gè)數(shù)可變的形參本質(zhì)就是一個(gè)數(shù)組類型的形參。

方法重載

Java允許同一個(gè)類里定義多個(gè)同名方法,只要形參列表不同就行。如果同一個(gè)類中包含了兩個(gè)或兩個(gè)以上方法的方法名相同,但形參列表不同,則被稱為方法重載。
Java中程序確定一個(gè)方法需要三個(gè)要素。

調(diào)用者,也就是方法的所屬者,既可以是類也可以是對(duì)象。

方法名,方法的標(biāo)志。

形參列表,當(dāng)調(diào)用方法時(shí),系統(tǒng)會(huì)根據(jù)傳入的實(shí)參列表匹配。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/68485.html

相關(guān)文章

  • Java學(xué)習(xí)路線總結(jié),搬磚工逆襲Java架構(gòu)師(全網(wǎng)最強(qiáng))

    摘要:哪吒社區(qū)技能樹打卡打卡貼函數(shù)式接口簡(jiǎn)介領(lǐng)域優(yōu)質(zhì)創(chuàng)作者哪吒公眾號(hào)作者架構(gòu)師奮斗者掃描主頁左側(cè)二維碼,加入群聊,一起學(xué)習(xí)一起進(jìn)步歡迎點(diǎn)贊收藏留言前情提要無意間聽到領(lǐng)導(dǎo)們的談話,現(xiàn)在公司的現(xiàn)狀是碼農(nóng)太多,但能獨(dú)立帶隊(duì)的人太少,簡(jiǎn)而言之,不缺干 ? 哪吒社區(qū)Java技能樹打卡?【打卡貼 day2...

    Scorpion 評(píng)論0 收藏0
  • 后臺(tái)開發(fā)常問面試題集錦(問題搬運(yùn)工,附鏈接)

    摘要:基礎(chǔ)問題的的性能及原理之區(qū)別詳解備忘筆記深入理解流水線抽象關(guān)鍵字修飾符知識(shí)點(diǎn)總結(jié)必看篇中的關(guān)鍵字解析回調(diào)機(jī)制解讀抽象類與三大特征時(shí)間和時(shí)間戳的相互轉(zhuǎn)換為什么要使用內(nèi)部類對(duì)象鎖和類鎖的區(qū)別,,優(yōu)缺點(diǎn)及比較提高篇八詳解內(nèi)部類單例模式和 Java基礎(chǔ)問題 String的+的性能及原理 java之yield(),sleep(),wait()區(qū)別詳解-備忘筆記 深入理解Java Stream流水...

    spacewander 評(píng)論0 收藏0
  • 后臺(tái)開發(fā)常問面試題集錦(問題搬運(yùn)工,附鏈接)

    摘要:基礎(chǔ)問題的的性能及原理之區(qū)別詳解備忘筆記深入理解流水線抽象關(guān)鍵字修飾符知識(shí)點(diǎn)總結(jié)必看篇中的關(guān)鍵字解析回調(diào)機(jī)制解讀抽象類與三大特征時(shí)間和時(shí)間戳的相互轉(zhuǎn)換為什么要使用內(nèi)部類對(duì)象鎖和類鎖的區(qū)別,,優(yōu)缺點(diǎn)及比較提高篇八詳解內(nèi)部類單例模式和 Java基礎(chǔ)問題 String的+的性能及原理 java之yield(),sleep(),wait()區(qū)別詳解-備忘筆記 深入理解Java Stream流水...

    xfee 評(píng)論0 收藏0
  • 后臺(tái)開發(fā)常問面試題集錦(問題搬運(yùn)工,附鏈接)

    摘要:基礎(chǔ)問題的的性能及原理之區(qū)別詳解備忘筆記深入理解流水線抽象關(guān)鍵字修飾符知識(shí)點(diǎn)總結(jié)必看篇中的關(guān)鍵字解析回調(diào)機(jī)制解讀抽象類與三大特征時(shí)間和時(shí)間戳的相互轉(zhuǎn)換為什么要使用內(nèi)部類對(duì)象鎖和類鎖的區(qū)別,,優(yōu)缺點(diǎn)及比較提高篇八詳解內(nèi)部類單例模式和 Java基礎(chǔ)問題 String的+的性能及原理 java之yield(),sleep(),wait()區(qū)別詳解-備忘筆記 深入理解Java Stream流水...

    makeFoxPlay 評(píng)論0 收藏0
  • Java8-5-Function函數(shù)式接口進(jìn)階與默認(rèn)方法詳解

    摘要:函數(shù)式接口進(jìn)階與默認(rèn)方法詳解上一篇我們快速的借助示例演示了的簡(jiǎn)單應(yīng)用,體會(huì)到了使用對(duì)集合處理的便捷和其與函數(shù)式接口密不可分的關(guān)系,所以為了更高效的使用,有必要更熟練的掌握函數(shù)式接口。 Java8-5-函數(shù)式接口進(jìn)階與默認(rèn)方法詳解上一篇我們快速的借助示例演示了stream api的簡(jiǎn)單應(yīng)用,體會(huì)到了使用stream api對(duì)集合處理的便捷和其與函數(shù)式接口密不可分的關(guān)系,所以為了更高效的使...

    Miracle_lihb 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<