最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

一、方法的定義

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

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

二、方法的聲明格式

[修飾符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ù)的類型(如果方法沒有返回值,則用關(guān)鍵字void來表示)
  • 方法名:類似變量名,可以自定義方法名(需符合Java標(biāo)識符規(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){}

五、方法的局部變量

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

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

boolean isLeapYear (int year){
    boolean isLeap = false;//聲明了一個局部變量并進(jìn)行初始化
        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關(guān)鍵字聲明的變量,這些變量屬于類本身,而不是類的任何特定實例(靜態(tài)變量在使用前無需初始化。)

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

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

靜態(tài)方法是使用static關(guān)鍵字定義的方法,靜態(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ù)地址并沒有被改變,改變那部分的值只是形參復(fù)制給實參使用的的地址,并不是把原地址改變。

  • 總結(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ù)類型有所不同(與方法的返回值無關(guān))

方法重載是對于 一個類。

 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é) 

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

相關(guān)文章

  • java生成申請單序列號的實現(xiàn)方法

    java生成申請單序列號的實現(xiàn)方法

    申請單序列號一般要求根據(jù)一定的規(guī)則生成后幾位連續(xù)的字符串,下面是我項目中使用的生成序列號的代碼,其中用到了鎖機(jī)制,有需要的朋友可以參考一下
    2014-01-01
  • SpringBoot如何對LocalDateTime進(jìn)行格式化并解析

    SpringBoot如何對LocalDateTime進(jìn)行格式化并解析

    這篇文章主要介紹了SpringBoot如何對LocalDateTime進(jìn)行格式化方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-07-07
  • 一文掌握J(rèn)ava 數(shù)據(jù)結(jié)構(gòu)超詳細(xì)筆記(收藏版)

    一文掌握J(rèn)ava 數(shù)據(jù)結(jié)構(gòu)超詳細(xì)筆記(收藏版)

    本文給大家介紹Java數(shù)據(jù)結(jié)構(gòu),包括數(shù)組、鏈表、List、Set、Map及迭代器,對比了其內(nèi)存特性、操作效率和應(yīng)用場景,并介紹了哈希及沖突解決方法,感興趣的朋友跟隨小編一起看看吧
    2025-09-09
  • Java三大最常用集合List、Set、Map用法詳解

    Java三大最常用集合List、Set、Map用法詳解

    在Java集合框架中,List、Set、Map是最核心的三大接口,它們分別對應(yīng)線性表、集合、鍵值對映射三種數(shù)據(jù)結(jié)構(gòu),各自有獨特的設(shè)計目標(biāo)和適用場景,這篇文章主要介紹了Java三大最常用集合List、Set、Map用法的相關(guān)資料,需要的朋友可以參考下
    2026-02-02
  • Java多線程父線程向子線程傳值問題及解決

    Java多線程父線程向子線程傳值問題及解決

    文章總結(jié)了5種解決父子之間數(shù)據(jù)傳遞困擾的解決方案,包括ThreadLocal+TaskDecorator、UserUtils、CustomTaskDecorator、ExecutorConfig、RequestContextHolder+TaskDecorator、MDC+TaskDecorator和InheritableThreadLocal
    2025-02-02
  • 最新SpringCloud?Stream消息驅(qū)動講解

    最新SpringCloud?Stream消息驅(qū)動講解

    SpringCloud Stream 是一個構(gòu)建消息驅(qū)動微服務(wù)的框架,通過 SpringCloud Stream 連接消息中間件,以實現(xiàn)消息事件驅(qū)動,這篇文章主要介紹了SpringCloud?Stream消息驅(qū)動,需要的朋友可以參考下
    2022-11-11
  • mybatis注解如何實現(xiàn)對象批量更改

    mybatis注解如何實現(xiàn)對象批量更改

    這篇文章主要介紹了mybatis注解實現(xiàn)對象批量更改的方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-07-07
  • SpringBoot+Vue3整合SSE實現(xiàn)實時消息推送

    SpringBoot+Vue3整合SSE實現(xiàn)實時消息推送

    這篇文章主要為大家詳細(xì)介紹了SpringBoot+Vue3整合SSE實現(xiàn)實時消息推送的相關(guān)方法,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2026-03-03
  • java中使用mmap技術(shù)的實現(xiàn)示例

    java中使用mmap技術(shù)的實現(xiàn)示例

    本文主要介紹了java中使用mmap技術(shù)的實現(xiàn)示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2026-01-01
  • @FeignClient注入找不到異常如何解決

    @FeignClient注入找不到異常如何解決

    這篇文章主要介紹了@FeignClient注入找不到異常的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-06-06

最新評論

平利县| 黔西县| 金坛市| 新疆| 青田县| 永寿县| 大渡口区| 库车县| 武威市| 马边| 忻城县| 法库县| 蒲城县| 盐城市| 珲春市| 安丘市| 清涧县| 霍林郭勒市| 太康县| 定安县| 渭南市| 龙岩市| 会同县| 错那县| 武安市| 乐清市| 青岛市| 边坝县| 观塘区| 泰顺县| 大庆市| 股票| 上思县| 繁昌县| 莒南县| 临汾市| 普陀区| 称多县| 兰州市| 城口县| 兴隆县|