方法及方法參數(shù)傳遞

方法

一個(gè)可以完成獨(dú)立功能的代碼塊

語(yǔ)法

返回值類(lèi)型 方法名(形參){
}
class Test{
    public static void main(String[] args){
        
        int x = add(3,5);
        System.out.println(x);
        System.out.println(add(x,5));
    }
    public static int add(int a,int b){
        int sum = a+b;
        return sum;
    }   
}
  1. 返回值: 必須有

  2. 方法名字:必須有

  3. 小括號(hào): 必須有

  4. 形式參數(shù):根據(jù)需要設(shè)定,也可以沒(méi)有形式參數(shù)

  5. 方法可以看成完成功能的代碼塊

  6. 大括號(hào): 必須有: 但是功能語(yǔ)句可以任意寫(xiě)

方法的使用

  • 方法有static修飾:類(lèi)名.方法名+參數(shù)列表[個(gè)數(shù),順序,類(lèi)型必須一致]
  • 方法沒(méi)有static修飾:對(duì)象名.方法名+參數(shù)列表[個(gè)數(shù),順序,類(lèi)型必須一致]
  • 方法在同一個(gè)類(lèi)中:方法名+參數(shù)列表[個(gè)數(shù),順序,類(lèi)型必須一致]

方法簽名

方法名字+參數(shù)列表[類(lèi)型,個(gè)數(shù),順序:必須一致]

方法重載(overload)

在同一個(gè)類(lèi)中,方法名字相同,參數(shù)列表不同

//計(jì)算兩個(gè)數(shù)的和
    public static int add(int a,int b){
        int sum = a+b;
        System.out.println(sum);
        return sum;
    }
//計(jì)算三個(gè)數(shù)的和
    public static int add(int a,int b,int c){
        int sum = a+b+c;
        System.out.println(sum);
        return sum;
    }
//計(jì)算四個(gè)數(shù)的和
    public static int add(int a,int b,int c,int d){
        int sum = a+b+c+d;
        System.out.println(sum);
        return sum;
    }

return 語(yǔ)句

  1. 方式:將方法運(yùn)算的結(jié)果返回給方法調(diào)用著,方法內(nèi)部將運(yùn)算結(jié)果使用語(yǔ)句:

    return 值/變量/表達(dá)式;

  2. 方法返回值的位置,必須寫(xiě)與方法內(nèi)部返回值的數(shù)據(jù)一致的數(shù)據(jù)類(lèi)型

  3. 注意:返回的是數(shù)據(jù),不是變量或者表達(dá)式

數(shù)組

一段連續(xù)的存儲(chǔ)空間 用來(lái)存放某種類(lèi)型的多個(gè)變量值

語(yǔ)法

//動(dòng)態(tài)創(chuàng)建之先聲明后賦值
數(shù)據(jù)類(lèi)型[] 數(shù)組名;
數(shù)組名 = new 數(shù)據(jù)類(lèi)型[數(shù)組長(zhǎng)度];
//靜態(tài)創(chuàng)建之復(fù)雜寫(xiě)法
//1.聲明的同時(shí)賦值
數(shù)據(jù)類(lèi)型[] 數(shù)組名 = new 數(shù)據(jù)類(lèi)型[] {多個(gè)以英文逗號(hào)分隔的元素};
//2.先聲明后賦值
數(shù)據(jù)類(lèi)型[]  數(shù)組名;
數(shù)組名 = new 數(shù)據(jù)類(lèi)型[] {多個(gè)以英文逗號(hào)分隔的元素};
//簡(jiǎn)寫(xiě)
數(shù)據(jù)類(lèi)型[] 數(shù)組名 ={多個(gè)以英文逗號(hào)分隔的元素};

特點(diǎn)

  • 創(chuàng)建以后 長(zhǎng)度固定不變
  • 只能存同一種類(lèi)型 的多個(gè)變量值

jvm存儲(chǔ)

  1. 基本數(shù)據(jù)類(lèi)型 打印的時(shí)具體的值 因?yàn)樗闹荡娣旁跅V?/li>
  2. 引用數(shù)據(jù)類(lèi)型 打印的時(shí)候是一個(gè)引用地址 因?yàn)樗唧w的存放區(qū)域存放堆中 String除外

數(shù)組的遍歷

//數(shù)組的長(zhǎng)度:數(shù)組名.length
int[] arr={2,4,12,124,122};
for(int i = 0;i<arr.length;i++){
    return i;
}

方法的參數(shù)傳遞

  • 值傳遞:方法傳遞的是值
    • 形式參數(shù)類(lèi)型是基本數(shù)據(jù)類(lèi)型
    • 基本類(lèi)型數(shù)據(jù)傳遞的是值
  • 值引用:方法傳遞的是值的引用
    • 形式參數(shù)類(lèi)型是引用數(shù)據(jù)類(lèi)型
    • 引用傳遞其實(shí)傳的是地址,形式參數(shù)類(lèi)型是引用數(shù)據(jù)類(lèi)型或數(shù)組。
    • 實(shí)際參數(shù)(數(shù)據(jù))是對(duì)象(或數(shù)組),這時(shí)實(shí)際參數(shù)與形式參數(shù)指向同一個(gè)地址
    • 在方法執(zhí)行中,對(duì)形式參數(shù)的操作實(shí)際上就是對(duì)實(shí)際參數(shù)的操作,這個(gè)結(jié)果在方法結(jié)束后被 保留了下來(lái),所以方法執(zhí)行中形式參數(shù)的改變將會(huì)影響實(shí)際參數(shù)

注意事項(xiàng)

方法調(diào)用時(shí),實(shí)際參數(shù)把它的值傳遞給對(duì)應(yīng)的形式參數(shù),相當(dāng)于拷貝了一份值給形式參數(shù),所以方法執(zhí)行中形式參數(shù)值的改變不影響實(shí)際參數(shù)的值。

  • 基本數(shù)據(jù)不影響原來(lái)的值
  • 引用數(shù)據(jù)不影響原來(lái)的地址值:
    • 引用地址,引用的值,如果被改變,原來(lái)引用的的值所引用的值也會(huì)被改變,因?yàn)槎际峭粋€(gè)引用
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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

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