欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java解析方法的調(diào)用關系示例詳解

 更新時間:2024年10月14日 10:04:21   作者:從零開始的-CodeNinja之路  
這篇文章主要介紹了Java解析方法的調(diào)用關系,方法在Java編程中用于封裝重復的代碼,提高代碼復用性,文中通過代碼介紹的非常詳細,需要的朋友可以參考下

一、方法的定義

方法就是 將功能重復的代碼封裝成一段獨立的代碼,通過調(diào)用方法的方式 (作用)提高代碼的復用性(減少代碼重復)。

每一個方法只能完成一個功能。

二、方法的聲明格式

[修飾符1,修飾符2] 返回值類型 方法名 (參數(shù)類型 形式參數(shù)1,參數(shù)類型 形式參數(shù)2,…){

執(zhí)行語句塊;
return 返回值;

}

例:

boolean isLeapYear (int year){  //定義方法
    boolean isLeap = false;
        if(year%4==0 && year%100 != 0 || year%400 != 0){
            isLeap = true;
        }
    return isLeap;
}
public class MethodDemo01 {
    //提取一個方法,計算兩個數(shù)的和并返回
    public static int addNum(int a,int b){
        int sum = a +b;
        return sum;
    }
    //提取一個方法,計算三個數(shù)的和并打印
    public static void addNum2(int a,int b,int c){
        int sum = a +b +c;
        System.out.println(sum);
    }
    public static void main(String[] args) {
        //調(diào)用方法1,計算1+2的和
        int sum1 = addNum(1,2);
        System.out.println(sum1);

        //調(diào)用方法1,計算3+4的和
        System.out.println(addNum(3,4));

        //調(diào)用方法,計算5+6+7的和并打印
        addNum2(5,6,7);
    }
}
  • 返回值類型:方法輸出數(shù)據(jù)的類型(如果方法沒有返回值,則用關鍵字void來表示)
  • 方法名:類似變量名,可以自定義方法名(需符合Java標識符規(guī)則)
  • 形式參數(shù):變量(用于存儲調(diào)用方法輸入的數(shù)據(jù))
  • 實際參數(shù):調(diào)用方法輸入的數(shù)據(jù)。
  • 返回值:調(diào)用方法返回的數(shù)據(jù)。

三、方法的調(diào)用

int year= 2020;
boolean leapYear =isLeapYear(year); //調(diào)用方法
if(leapYear){
    System.out.println(year +"是閏年!")
}
year = 2052;
leapYear =isLeapYear(year);//調(diào)用方法
if(leapYear){
    System.out.println(year +"是閏年!")
}

四、特殊方法:程序入口main方法

main方法是一個特殊方法,它是Java程序的入口方法,執(zhí)行Java程序時,JVM會調(diào)用main方法。

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

五、方法的局部變量

局部變量是指在方法中聲明的變量,其作用范圍僅限于方法中

局部變量使用前必須進行初始化。(定義在main方法中的變量也是局部變量)

boolean isLeapYear (int year){
    boolean isLeap = false;//聲明了一個局部變量并進行初始化
        if(year%4==0 && year%100 != 0 || year%400 != 0){
            isLeap = true;
        }
    return isLeap;
}
public classA{
    public static void main (String[]args){
    int i =6; //整數(shù)(實參,局部變量)
    int [] array = {1,2,3}; //數(shù)組(實參,局部變量,傳數(shù)組的地址)
    test(i,array);
    System.out.println(i+""+array[0]);
    }
    public static void test(int i,int []array){  //形參
        i += 3;
        array[0] += 3;
    }
}
//輸出結(jié)果:6 4

六、類的靜態(tài)變量

靜態(tài)變量(也稱為類變量)是使用static關鍵字聲明的變量,這些變量屬于類本身,而不是類的任何特定實例(靜態(tài)變量在使用前無需初始化。)

public class HellWorld{
    public static boolean isLeap;//全局變量(默認自動化)
    
    public static void method01(){ //
        isLeap = true;//共享全局變量
    }
    public static void method02(){
        isLeap = true;//共享全局變量
    }
}

七、類的靜態(tài)方法

靜態(tài)方法是使用static關鍵字定義的方法,靜態(tài)方法可以訪問類的靜態(tài)變量和靜態(tài)方法,但不能訪問類的實例方法和實例變量。

八、方法的傳參

  • 實參和形參
    實參:調(diào)用方法輸入的變量或常量值

形參:方法中定義的數(shù)據(jù)類型變量。

  • 值傳遞
    實參將數(shù)據(jù)傳遞給形參時,形參的改變改變不影響原實參的值,即值傳遞只會改變形參,不會改變實參。(基本數(shù)據(jù)類型)

  • 引用傳遞
    引用傳遞:是指在調(diào)用函數(shù)時,將實際參數(shù)的地址傳遞給函數(shù),這樣在函數(shù)中對參數(shù)的修改,將影響到實際參數(shù)。(引用數(shù)據(jù)類型)

引用數(shù)據(jù)傳遞的不是真正的數(shù)據(jù)地址,是引用的堆內(nèi)存中的地址,無論引用傳遞的數(shù)據(jù)怎么改變,它也只是引用的堆內(nèi)存中的地址,原數(shù)據(jù)組的數(shù)據(jù)地址并沒有被改變,改變那部分的值只是形參復制給實參使用的的地址,并不是把原地址改變。

  • 總結(jié)
    在Java中,參數(shù)傳參本質(zhì)上只存在值傳遞。

值傳遞時,形參改變并不會影響到實參。

在函數(shù)中,只有修改了實參所指向的對象內(nèi)容,也就是引用堆內(nèi)存中的地址,才會影響到實參

public classA{
    public static void main (String[]args){
    int i =6; //整數(shù)(實參,局部變量)
    int [] array = {1,2,3}; //數(shù)組(實參,局部變量,傳數(shù)組的地址)
    test(i,array);
    System.out.println(i+""+array[0]);
    }
    public static void test(int i,int []array){//形參
        i += 3;
        array[0] += 3;
    }
}
//輸出結(jié)果:6 4

九、方法的重載

方法的重載指的是在同一個類中,有一個以上的同名方法,但方法的參數(shù)個數(shù)或參數(shù)類型有所不同(與方法的返回值無關)

方法重載是對于 一個類。

 public static int addNum(int a,int b){
        int sum = a +b;
        return sum;
    }
    //提取一個方法,計算三個數(shù)的和并打印
 public static int addNum2(int a,int b,int c){
        int sum = a +b +c;
        return sum;
    }

例如,以下都屬于方法的重載

  • void show (int a,char b,double c);

  • void show (int a,double b,char c);

  • void show (int a,int b);

  • void show (int a);

  • double show(int a,char b,double c);

總結(jié) 

到此這篇關于Java解析方法的調(diào)用關系的文章就介紹到這了,更多相關Java方法的調(diào)用關系內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • 詳解spring boot jpa整合QueryDSL來簡化復雜操作

    詳解spring boot jpa整合QueryDSL來簡化復雜操作

    這篇文章主要介紹了詳解spring boot jpa整合QueryDSL來簡化復雜操作,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-04-04
  • Java 實戰(zhàn)練習之網(wǎng)上電商項目的實現(xiàn)

    Java 實戰(zhàn)練習之網(wǎng)上電商項目的實現(xiàn)

    讀萬卷書不如行萬里路,只學書上的理論是遠遠不夠的,只有在實戰(zhàn)中才能獲得能力的提升,本篇文章手把手帶你用java+vue+Springboot+ssm+mysql+maven+redis實現(xiàn)一個網(wǎng)上電商項目,大家可以在過程中查缺補漏,提升水平
    2021-11-11
  • java 中歸并排序算法詳解

    java 中歸并排序算法詳解

    這篇文章主要介紹了java 中歸并排序算法詳解的相關資料,歸并排序算法又稱為合并排序算法,是一種時間復雜度為O(N logN)的排序算法,因而其在平常生活工作中應用非常廣泛,需要的朋友可以參考下
    2017-09-09
  • Java Maven settings.xml中私有倉庫配置詳解

    Java Maven settings.xml中私有倉庫配置詳解

    這篇文章主要介紹了詳解Maven settings.xml配置,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2021-10-10
  • java計算代碼段執(zhí)行時間的詳細代碼

    java計算代碼段執(zhí)行時間的詳細代碼

    java里計算代碼段執(zhí)行時間可以有兩種方法,一種是毫秒級別的計算,另一種是更精確的納秒級別的計算,這篇文章主要介紹了java計算代碼段執(zhí)行時間,需要的朋友可以參考下
    2022-08-08
  • 一篇文章帶你了解Java SpringBoot Nacos

    一篇文章帶你了解Java SpringBoot Nacos

    這篇文章主要介紹了SpringBoot使用Nacos配置中心的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-09-09
  • 避免sql注入_動力節(jié)點Java學院整理

    避免sql注入_動力節(jié)點Java學院整理

    這篇文章主要介紹了避免sql注入,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-08-08
  • Java ScheduledExecutorService的具體使用

    Java ScheduledExecutorService的具體使用

    ScheduledExecutorService有線程池的特性,也可以實現(xiàn)任務循環(huán)執(zhí)行,本文主要介紹了Java ScheduledExecutorService的具體使用,具有一定的參考價值,感興趣的可以了解一下
    2023-05-05
  • Java中的List接口實現(xiàn)類解析

    Java中的List接口實現(xiàn)類解析

    這篇文章主要介紹了Java中的List接口實現(xiàn)類解析,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-02-02
  • Spring中初始化泛型類的方法實例

    Spring中初始化泛型類的方法實例

    這篇文章主要給大家介紹了Spring中如何初始化泛型類,文中給出詳細的介紹和方法實例,對大家的理解和學習具有一定的參考借鑒價值,有需要的朋友可以參考學習,下面來一起看看吧。
    2017-01-01

最新評論