Java方法詳解(Java基礎)

本章是Java基礎的方法概念詳解,分享給初學者,一起學習,共同進步!



一.方法基礎概念

什麼是方法

  • Java的方法類似於其它語言的函數,是一段用來完成特定功能的代碼片段

爲什麼要聲明方法

  • (方法的好處)
  • ①把複用的邏輯抽取出來,封裝成方法,提高代碼的重用性
  • ②實現相對獨立的邏輯,提高代碼的維護性
  • ③可以對具體實現進行隱藏、封裝

方法的作用

  • 簡化代碼,提高代碼的可讀性,可維護性,可重用性

方法的聲明格式

  • 語法:
訪問權限修飾符 其他修飾符 返回值類型 方法名稱(參數列表) {
 //方法體【函數體】 return 返回值;
 //如果返回值類型void ,可以不用寫return 
 }
  • 不寫默認是default
  • 如圖是修飾符的訪問權限
修飾符 當前類 相同包 子類 其他包
public
protetcted ×
default × ×
private × × ×

Java訪問修飾符包括private,default,protected和public。含義分別表示私有的,默認的,受保護的和公有的訪問修飾符。這些訪問修飾符既可以修飾類中的屬性,又可以修飾類中的方法,而public和default還可以修飾類。在同一個java文件裏,公有類有且僅有一個,並且該文件命名爲類名.java。


二.方法的分類

  • 根據方法有沒有參數,可分爲:
  • 1.無參方法
  • 2.有參方法
  • 根據有沒有返回值,可分爲:
  • 1.無返回值方法
  • 2.有返回值方法
public class Demo{
    
//  1. 最簡單的無參方法
    void sum1(){
        System.out.println("加法操作"); 
    }
//    2. 擁有修飾符的無參方法 
    public static void sum2(){ 
        System.out.println("加法操作");
    }
//    3. 擁有參數的方法
    public static void sum3(int a,int b){ 
        System.out.println("兩數相加結果"+a+b); 
    }
//    4.擁有返回值的方法 
    public static int sum4(int a,int b){

        return a+b;
    }
//        5.聲明一個無參數帶返回值
    
    public static int sum5(){
        int x=20; 
        int y=28; 
        int z=x+y; 
        return z; 
    }
}

三.方法的調用格式

  • 語法:方法名稱(實參列表);
  • 注意
  • a.實參的數量和類型必須和形參保持完全的一致。
  • b.方法之間只能進行相互的調用,而不能在方法中聲明方法,就目前而言聲明的方法都和main方法時並列的
  • c.如果定義方法有返回值,運算的結果會返回給調用者,調用者需要定義變量接收數據

無返回值的調用格式案例

public class Demo{

    public static void main(String[] args) {
        //實參
        int a = 10;
        int b = 20;
        swap(a,b);

        System.out.println("main函數中的a=" + a);//10
        System.out.println("main函數中的b=" + b);//20
    }
    //分析:需要參數(兩個參數)
    // 不需要返回值
    // 形參:沒有攜帶值的變量,多個變量之間使用逗號分隔

    public static void swap(int a,int b){
        int temp = 0;
        temp = a;
        a = b ;
        b = temp ;

        System.out.println("swap函數中的a=" + a); //20
        System.out.println("swap函數中的b=" + b); //10
    }
}
swap函數中的a=20
swap函數中的b=10
main函數中的a=10
main函數中的b=20
  • 初學者一定要理解好形式參數和實際參數

有方法的返回值的案例

  • 有返回值的要用到return關鍵字
  • return關鍵字的作用:結束方法,返回結果,
  • 情況1
public class Demo {

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

    /*1>在沒有返回值的函數中使用return 
    return單獨成立一條語句,
    類似於break或者continue,後面不能跟任何的數值 
    作用:結束整個方法 */
    public static void show() {
        System.out.println("Hello World!");
        int x = 10;
        if (x > 5) {
            return;//結束方法 }
        }
        // 不能執行
        System.out.println("Hello World!========");
    }
}

Hello World!
  • 情況2
public class Demo {

    public static void main(String[] args) {
       int result = add(10,20);
       System.out.println(result);
    }

    /*2>在一個有返回值的函數中使用return 
    這種情況下函數中必須出現return 
    return後面必須跟一個具體的數值,而且數值的類型和返回值類型必須保持一致 
    作用:結束整個方法,並且將返回值攜帶給調用者 */
    public static int add(int a ,int b) {
        System.out.println("Hello World!");
       int c = a+b;
       return c;
    }
}
30
  • 情況3
public class Demo {

    public static void main(String[] args) {
        int result = compare(34,67);
        System.out.println(result);
    }

    /*3>如果一個自定義的函數有返回值,
    並且在方法中遇到了分支結構,使用return
     在每一個分支後面都需要出現一個return *///

    // 需求:比較兩個變量的大小,返回較大的一個
    public static int compare(int a,int b) {
        if(a>b){
            return a;
        }
        else if(a<b){
            return b;
        }
        else{
            return 0;
        }
    }
}
67

四.方法的重載

方法重載的概念

  • 同一個類中,方法名字相同,參數列表不同,則是方法重載。
  • 注意:
  • 參數列表的不同包括,參數個數不同,參數數據類型不同,參數順序不同
  • 方法的重載與方法的修飾符和返回值沒有任何關係
public class Demo {

    public static void main(String[] args) {
        show();
        show(10);
        show("10");
        show("10",10);
    }
    
    public static void show() {
        System.out.println("無參無返回值的show");
    }
    
    public static void show(int a) {
        System.out.println("int的show");
    }
    
    public static void show(String a) {
        System.out.println("String的show");
    }
    
    public static void show(String a,int b) {
        System.out.println("String int的show");
    }
    
}
無參無返回值的show
int的show
String的show
String int的show
  • 以上的就代表JAVA方法的重載

五.拓展

區分什麼是類方法和實例方法

  • 類方法:
  • 使用static修飾的方法,是屬於當前整個類的,而不是屬於某個實例的,只能處理static域或調用static方法。
  • 實例方法:
  • 屬於對象的方法,有對象來調用。
public class Demo {

    float a;
    //實例方法
     void sum(float num1,float num2){
       a = Max(num1,num2);
    }

    //類方法
    static  float Max(float num1,float num2){
        //取最大值
        return num1 <= num2 ? num2 :num1;
    }

    public static void main(String[] args) {
        Demo demo =new Demo();
        demo.sum(22,33);  //實例方法必需先初始化類的實例,然後通過類的實例才能調用
        Demo.Max(12,9);   // 類方法可以直接通過類名調用

    }

}

  • 一個類中的方法可以互相調用。但要注意:實例方法可以調用該類中的其他方法,例如,sum()可以調用Max()。類方法只能調用其他類方法,不能調用實例方法。
  • 類方法又叫靜態方法, 實例方法又叫非靜態方法。
  • 類方法可以直接通過類名調用,實例方法必需先初始化類的實例,然後通過類的實例才能調用

  • 知識點小結
  • Java中的方法分爲類方法和實例方法,區別是類方法中有static修飾,爲靜態方法,是類的方法。所以在類文件加載到內存時就已經創建,但是實例方法是對象的方法,只有對象創建後才起作用,所以在類方法中不能調用實例方法,但實例方法中可以調用類方法,且實例方法可以互相調用。

  • The best investment is in yourself
    在這裏插入圖片描述

  • 2020.04.15 記錄辰兮的第55篇博客

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章