国产成人精品18p,天天干成人网,无码专区狠狠躁天天躁,美女脱精光隐私扒开免费观看

java基礎之方法詳解

發(fā)布時(shí)間:2021-07-17 21:51 來(lái)源:腳本之家 閱讀:0 作者:木昇 欄目: 編程語(yǔ)言

目錄

一、什么是方法

  • Java方法是語(yǔ)句的集合,他們在一起執行一個(gè)功能。

1.方法是解決一類(lèi)問(wèn)題的步驟的有序組合

2.方法包含于類(lèi)或對對象中

3.方法在程序中被創(chuàng )建,在其他地方被應用

  • 設計方法的原則:方法的本意是功能塊,就是實(shí)現某個(gè)功能的語(yǔ)句塊的結合。我們設計方法的時(shí)候,最好保持方法的原子性,就是一個(gè)方法只完成一個(gè)功能,這樣利于我們后期的擴展。

當然只讀文字不能完全理解,下面的代碼一定要自己一個(gè)個(gè)敲,仔細品味:

//類(lèi)
public class Demo01 {

    //mian方法,可理解為系統自定義的一個(gè)方法(一個(gè)類(lèi)中必須要有mian方法)
    public static void main(String[] args) {
        int sum=add(1,2);
        System.out.println(sum);
    }

    //自定義一個(gè)"加法"
    //方法中寫(xiě)入了static是為了其他方法中方便調用它(要配合return),這可以理解為一個(gè)類(lèi)變量
     public static int add(int a,int b){
        return a+b;//將定義的加法,返回到上面調用它的mian方法中去
    }
}

下面是返回為空的情況(viod)(注釋很重要):

public class Demo02 {

    //mian方法
    public static void main(String[] args) {
        test();//將下面自定義的方法調用,結果會(huì )輸出1
    }
    //自定義一個(gè)方法test()方法
    public static void test(){//void相當于返回為空,則不用與return連用,
        int a=1;
        System.out.println(a);
        /*
        因為這次的定義的變量在test()方法中,
        mian方法在調用時(shí),在mian方法中找不到變量,則返回值為空,用viod。
        這樣讓mian方法更簡(jiǎn)潔,能直接調用test()方法,
        返回值為空是,不能用return返回,
         */
    }
}

二、方法的定義

  • java的方法類(lèi)似于其他的語(yǔ)言的函數,是一段用來(lái)完成特定功能的代碼片段,一般情況下,定義一個(gè)方法包含以下語(yǔ)法(方法包含一個(gè)方法頭和一個(gè)方法體):

1.修飾符:這是可選的,告訴編譯器如何調用該方法。定義了該方法的訪(fǎng)問(wèn)類(lèi)型。

2.返回值類(lèi)型:方法可能會(huì )返回值。returnValueType是方法返回值的數據類(lèi)型。有些方法執行所需的操作,但沒(méi)有返回值,即返回為空。在這種情況下,returnValueType是關(guān)鍵字void。

3.方法名 :是方法的實(shí)際名稱(chēng)。方法和參數表共同構成方法簽名。

4.參數類(lèi)型:參數像是一個(gè)占位符,當方法值給參數。這個(gè)值被稱(chēng)為實(shí)參或變量。參數列表是指方法的參數類(lèi)型、順序和參數個(gè)數。參數是可選的,方法不包含任何參數。

形式參數:在方法被調用時(shí)用于接受外界輸入數據。

實(shí)參:調用方法是實(shí)際傳給方法的數據。

方法體:方法體包含具體的語(yǔ)句,定義該方法的功能。

以上文字結合下圖思考

結合上面文字,認真分析下邊的代碼:

public class Demo03 {

    //main方法
    public static void main(String[] args) {
        int max = max(20,20);
        System.out.println(max);
    }

    //自定義一個(gè) 比大小 的方法
    public static  int max(int num1,int num2){
        int reason=0;
        if (num1==num2){
            reason=num1;
            System.out.print("兩值相等都為" );
            return reason;//return除了能返回值,還有終止方法的意思,代碼在運行,return后面的語(yǔ)句將不再執行
        }
        if (num1>num2){
            reason=num1;
        }else {
            reason=num2;
        }
        return reason;
    }
}

提示:return有終止方法的功能,即在方法中有return成功被執行,那么其后面的代碼將不會(huì )運行。

三、方法的調用

  • 調用方法:對象名.方法名(實(shí)參列表)
  • Java支持兩種調用方法的方式,根據方法是否返回值來(lái)選擇。
  • 當方法返回一個(gè)值的時(shí)候,方法調用通常被當做一個(gè)值。例如:

int larger=max(30,40);

  • 如果返回值是void,方法調用一定是一條語(yǔ)句。如:

System.out.println(“hello!”);

四、方法的重載

  • 重載就是在一個(gè)類(lèi)中,有相同的函數名稱(chēng),但形參不同的函數。
  • 方法重載的規則:

1.方法名稱(chēng)必須相同。

2.參數列表必須不同(個(gè)數不同、或類(lèi)型不同、參數排列順序不同等)。

3.方法的返回類(lèi)型可以相同也可以不相同。

4.僅僅返回類(lèi)型不同不足以成為方法的重載。

  • 實(shí)現理論:

方法名稱(chēng)相同時(shí),編譯器會(huì )根據調用的方法的參數個(gè)數,參數類(lèi)型等去逐個(gè)匹配,以選擇對應的方法,如果匹配失敗,則編譯器報錯。

重載例用如下:

public class Demo05 {
    public static void main(String[] args) {
        //調用int類(lèi)型的加法
        int sum=add(2,3);
        System.out.println(sum);
    }

    //定義一個(gè)double類(lèi)型的加法
    public static double add(double a1,double a2){
        double a=a1+a2;
        return a;
    }
    //定義一個(gè)int類(lèi)型的加法
    public static int add(int a1,int a2){
        int a=a1+a2;
        return a;
    }
    /*
    定義的double類(lèi)型的加法和int類(lèi)型的加法
    這兩個(gè)方法的參數類(lèi)型不同,方法名稱(chēng)相同.
     */
}

可變參數

  • 在方法聲明中,在指定參數類(lèi)型后加一個(gè)省略號(…)。如:public void test(int…i)。int…i可以理解為數組
  • 一個(gè)方法中只能指定一個(gè)可變參數,它必須是方法的最后一個(gè)參數。任何普通的參數必須在它之前聲明。
public class Demo07 {
    public static void main(String[] args) {
        Demo07 demo07=new Demo07();
        demo07.test(1,5,565,15,1212);
    }
    public void test(int a,int...i){//int...i必須是方法的最后一個(gè)參數
        System.out.println(i[0]);//i[0]提取int...i(可以理解為數組)中第1個(gè)數
        System.out.println(i[1]);//提取第2個(gè)數
        System.out.println(i[2]);
        System.out.println(i[3]);
        System.out.println(i[4]);
    }
}

五、遞歸

  • 遞歸就是: A方法調用A方法!就是自己調用自己
  • 利用遞歸可以用簡(jiǎn)單的程序來(lái)解決一些復雜的問(wèn)題。 它通常把一個(gè)大型復雜的問(wèn)題層層轉化為一個(gè)與原問(wèn)題相似的規模較小的問(wèn)題來(lái)求解,遞歸策略只需少量的程序就可描述出解題過(guò)程所需要的多次重復計算,大大地減少了程序的代碼量。遞歸的能力在于用有限的語(yǔ)句來(lái)定義對象的無(wú)限集合。
  • 遞歸結構包括兩個(gè)部分:

1.遞歸頭:什么時(shí)候不調用自身方法。如果沒(méi)有頭,將陷入死循環(huán)。

2.遞歸體:什么時(shí)候需要調用自身方法。

//遞歸
public class Demo08 {
    public static void main(String[] args) {
        int b=f(4);
        System.out.println(b);
    }

    //階層(自己調用自己)
    public  static int f(int n){
        if(n==1){
            return 1;
        }else {
            return n*f(n-1);//n*(n-1)*(n-1-1)*...*1
        }
    }
}

到此這篇關(guān)于java基礎之方法詳解的文章就介紹到這了,更多相關(guān)java方法詳解內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng )、來(lái)自互聯(lián)網(wǎng)轉載和分享為主,文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權請聯(lián)系站長(cháng)郵箱:ts@56dr.com進(jìn)行舉報,并提供相關(guān)證據,一經(jīng)查實(shí),將立刻刪除涉嫌侵權內容。

国产成人无码A区在线观看视频| 久久精品娱乐亚洲领先| 波多野结衣AV无码| 无码人妻丰满熟妇区五十路| 最美情侣免费观看视频芒果TV| 亚洲AV永久无码天堂网一线|