Java 菜鳥教程

Java 流程控制

Java 數(shù)組

Java 面向?qū)ο?I)

Java 面向?qū)ο?II)

Java 面向?qū)ο?III)

Java 異常處理

Java 列表(List)

Java Queue(隊(duì)列)

Java Map集合

Java Set集合

Java 輸入輸出(I/O)

Java Reader/Writer

Java 其他主題

Java 方法

在本教程中,您將借助示例學(xué)習(xí)Java方法,如何定義方法以及如何在Java程序中使用方法。

什么是方法?

在數(shù)學(xué)中,我們可能已經(jīng)研究過函數(shù)。例如,f(x) = x2x 是一個(gè)返回平方值的函數(shù)。

If x = 2, then f(2) = 4
If x = 3, f(3) = 9
and so on.

同樣,在計(jì)算機(jī)編程中,函數(shù)是執(zhí)行特定任務(wù)的代碼塊。

在面向?qū)ο蟮木幊讨?,該方法是用于函?shù)的術(shù)語(yǔ)。方法綁定到類,并且它們定義類的行為。

在學(xué)習(xí)方法之前,請(qǐng)確保了解Java類和對(duì)象

Java方法的類型

根據(jù)用戶定義的方法還是標(biāo)準(zhǔn)庫(kù)中可用的方法,Java中有兩種方法:

  • 標(biāo)準(zhǔn)庫(kù)方法

  • 用戶定義的方法

標(biāo)準(zhǔn)庫(kù)方法

 標(biāo)準(zhǔn)庫(kù)方法是Java中的內(nèi)置方法,可以隨時(shí)使用。這些標(biāo)準(zhǔn)庫(kù)與Java類庫(kù)(JCL)一起出現(xiàn)在JVM和JRE的Java歸檔文件(*.jar)中。

例如,

  • print() - 是java.io.PrintSteam的一個(gè)方法。print("…")方法用引號(hào)打印字符串。

  • sqrt() -  是數(shù)學(xué)課的一種方法。它返回一個(gè)數(shù)字的平方根。

這是一個(gè)工作示例:

public class Main {
    public static void main(String[] args) {
    
        //使用sqrt()方法
        System.out.print("4的平方根是: " + Math.sqrt(4));
    }
}

輸出

4的平方根是: 2.0

用戶定義的方法

我們還可以創(chuàng)建自己選擇的方法來執(zhí)行某些任務(wù)。這種方法稱為用戶定義方法。

如何創(chuàng)建用戶定義的方法?

這是我們?nèi)绾斡肑ava創(chuàng)建方法的方法:

public static void myMethod() {
    System.out.println("我的函數(shù)");
}

在這里,我們創(chuàng)建了一個(gè)名為myMethod()的方法。我們可以看到,我們?cè)诜椒笆褂昧藀ublic、static和void。

  • public - 訪問修飾符。這意味著可以從任何地方訪問該方法。要了解更多信息,請(qǐng)?jiān)L問Java訪問修飾符

  • static - 這意味著可以在沒有任何對(duì)象的情況下訪問該方法。要了解更多信息,請(qǐng)?jiān)L問Java靜態(tài)關(guān)鍵字。

  • void - 這意味著該方法不返回任何值。我們將在本教程的后面部分進(jìn)一步了解此內(nèi)容。

這是我們?nèi)绾蝿?chuàng)建方法的簡(jiǎn)單示例。但是,Java中方法定義的完整語(yǔ)法為:

modifier static returnType nameOfMethod (parameters) {
    // method body
}

這里,

  • modifier - 它定義訪問方法是公共方法,私有方法等。

  • static - 如果使用static關(guān)鍵字,則無(wú)需創(chuàng)建對(duì)象即可對(duì)其進(jìn)行訪問。
    例如,sqrt()標(biāo)準(zhǔn)Math類的方法是靜態(tài)的。因此,我們可以直接調(diào)用Math.sqrt()而無(wú)需創(chuàng)建Math類的實(shí)例。

  • returnType - 它指定方法返回的值的類型。例如,如果方法具有int返回類型,則它返回整數(shù)值。
    一種方法,可以返回原始數(shù)據(jù)類型(int,float,double等),原生對(duì)象(String,Map,List等),或任何其他的內(nèi)置和用戶定義的對(duì)象。
    如果該方法未返回值,則其返回類型為void。

  • nameOfMethod - 它是一個(gè)標(biāo)識(shí)符,用于引用程序中的特定方法。
    我們可以給方法起任何名字。但是,以它執(zhí)行的任務(wù)命名是更常規(guī)的做法。例如calculateArea(),display()等。

  • parameters (arguments) - 這些是傳遞給方法的值。我們可以將任意數(shù)量的參數(shù)傳遞給方法。

  • method body - 它包括用于執(zhí)行某些任務(wù)的編程語(yǔ)句。方法主體包含在花括號(hào)內(nèi){ }。

    如何調(diào)用Java方法?

    現(xiàn)在我們知道了如何定義方法,我們需要學(xué)習(xí)使用它們。為此,我們必須調(diào)用該方法。這是如何做

    myMethod();

    該語(yǔ)句調(diào)用myMethod()先前聲明的方法。

    Java中的方法調(diào)用工作
    Java中的方法調(diào)用工作流程圖
    1.  在執(zhí)行程序代碼時(shí),它在代碼中遇到myFunction()。

    2.  然后執(zhí)行分支到myFunction()方法并在方法體內(nèi)部執(zhí)行代碼。

    3.  在方法體執(zhí)行之后,程序返回到原始狀態(tài),并在方法調(diào)用后執(zhí)行下一個(gè)語(yǔ)句。

    示例:Java方法

    讓我們看看如何在Java程序中使用方法。

    class Main {
    
        public static void main(String[] args) {
            System.out.println("即將遇到一種方法。");
    
            //調(diào)用方法
            myMethod();
    
            System.out.println("方法已成功執(zhí)行!");
        }
    
        // method definition
        private static void myMethod(){
            System.out.println("從myMethod()內(nèi)部打印!");
        }
    }

    輸出

    即將遇到一種方法。
    從myMethod()內(nèi)部打印!
    方法已成功執(zhí)行!

    在上述程序中,我們有一個(gè)名為myMethod()的方法。該方法不接受任何參數(shù)。同樣,該方法的返回類型為void(意味著不返回任何值)。

    在這里,方法是static。因此,我們?cè)谖磩?chuàng)建類的對(duì)象的情況下調(diào)用了該方法。

    再來看一個(gè)實(shí)例

    class Main {
    
        public static void main(String[] args) {
    
            //創(chuàng)建Output類的對(duì)象
            Output obj = new Output();
            System.out.println("即將遇到一個(gè)方法。");
    
            //調(diào)用Output類的myMethod()
            obj.myMethod();
    
            System.out.println("方法已成功執(zhí)行!");
        }
    }
    
    class Output {
      
        //public:這個(gè)方法可以從類外部調(diào)用
        public void myMethod() {
            System.out.println("從myMethod()內(nèi)部打印。");
        }
    }

    輸出

    即將遇到一個(gè)方法。
    從myMethod()內(nèi)部打印。
    方法已成功執(zhí)行!

    在上面的示例中,我們創(chuàng)建了一個(gè)名為myMethod()的方法。該方法位于名為Output的類中。

    由于方法不是static,因此使用obj類的對(duì)象調(diào)用該方法。

    obj.myMethod();

    方法參數(shù)和返回值

    如前所述,Java方法可以具有零個(gè)或多個(gè)參數(shù)。并且,它也可能返回一些值。

    示例:方法返回值

    讓我們以有返回值的方法為例。

    class SquareMain {
        public static void main(String[] args) {
            int result;
    
            //調(diào)用方法并存儲(chǔ)返回值
            result = square(); 
            System.out.println("10的平方值是: " + result);
        }
    
        public static int square() {
            //return 語(yǔ)句
            return 10 * 10;
        }
    }

    輸出

    10的平方值是: 100

    在以上程序中,我們創(chuàng)建了一個(gè)名為square()的方法。此方法不接受任何參數(shù),并返回值為10 *10。

    在這里,我們提到的方法的返回類型為int。因此,該方法應(yīng)始終返回整數(shù)值。

    返回值的方法的表示形式
    返回值的方法的表示形式

    如我們所見,此方法的范圍是有限的,因?yàn)樗偸欠祷叵嗤闹怠,F(xiàn)在,讓我們修改上面的代碼片段,以使它始終返回傳遞給該方法的任何整數(shù)的平方值,而不是始終返回10的平方值。

    示例:方法接受參數(shù)并返回值

    public class Main {
       
        public static void main(String[] args) {
            int result, n;
            
            n = 3;
            result = square(n);
            System.out.println("3的平方是: " + result);
            
            n = 4;
            result = square(n); 
            System.out.println("4的平方是: " + result);
        }
    
        // 方法
        static int square(int i) {
            return i * i;
        }
    }

    輸出

    3的平方是: 9
    4的平方是: 16

    在此,square()方法接受一個(gè)參數(shù)i并返回i的平方。返回的值存儲(chǔ)在變量result中。

    顯示將參數(shù)傳遞給方法并返回值的示例
    在Java中傳遞參數(shù)并從方法中返回值

    如果我們傳遞任何其他數(shù)據(jù)類型,而不是int類型的值,則編譯器將引發(fā)錯(cuò)誤。這是因?yàn)镴ava是一種強(qiáng)類型語(yǔ)言。

     在方法調(diào)用期間傳遞給getSquare()方法的參數(shù)n稱為實(shí)際參數(shù)。

    result = getSquare(n);

     方法定義接受的參數(shù)稱為形式參數(shù)。形式參數(shù)的類型必須顯式類型化。

    public static int square(int i) {...}

    我們還可以使用逗號(hào)將多個(gè)參數(shù)傳遞給Java方法。例如,

    public class Main {
    
        //方法定義
        public static int getIntegerSum (int i, int j) {
            return i + j;
        }
    
        // 方法定義
        public static int multiplyInteger (int x, int y) {
            return x * y;
        }
    
        public static void main(String[] args) {
    
            //調(diào)用方法
            System.out.println("10 + 20 = " + getIntegerSum(10, 20));
            System.out.println("20 x 40 = " + multiplyInteger(20, 40));
        }
    }

    輸出

    10 + 20 = 30
    20 x 40 = 800

    注意: 實(shí)際參數(shù)和形式參數(shù)的數(shù)據(jù)類型應(yīng)匹配,即第一個(gè)實(shí)際參數(shù)的數(shù)據(jù)類型應(yīng)與第一個(gè)形式參數(shù)的數(shù)據(jù)類型相匹配。同樣,第二個(gè)實(shí)際參數(shù)的類型必須與第二個(gè)形式參數(shù)的類型相匹配,以此類推。

    使用方法的優(yōu)點(diǎn)是什么?

    1.主要優(yōu)點(diǎn)是代碼可重用性。我們可以編寫一次方法,并多次使用它。我們不必每次都重寫整個(gè)代碼。可以將其視為“一次編寫,多次重用”。例如,

    public class Main {
    
        //方法定義
        private static int getSquare(int x){
            return x * x;
        }
    
        public static void main(String[] args) {
            for (int i = 1; i <= 5; i++) {
    
                //方法調(diào)用
                int result = getSquare(i);
                System.out.println("" + i + " 的平方是: " + result);
            }
        }
    }

    輸出

    1 的平方是: 1
    2 的平方是: 4
    3 的平方是: 9
    4 的平方是: 16
    5 的平方是: 25

     在上面的程序中,我們創(chuàng)建了一個(gè)名為getSquare()的方法來計(jì)算數(shù)字的平方。這里,用同樣的方法計(jì)算小于6的數(shù)的平方。

     因此,我們反復(fù)使用相同的方法

    方法2使代碼更易讀,更易于調(diào)試。例如,getSquare()方法可讀性很強(qiáng),因此我們可以知道這個(gè)方法將計(jì)算一個(gè)數(shù)字的平方。

    丰满人妻一级特黄a大片,午夜无码免费福利一级,欧美亚洲精品在线,国产婷婷成人久久Av免费高清