日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

controller方法名一样参数传递不同如何根据参数匹配_【Java学习 | Javase】方法

發布時間:2024/10/8 java 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 controller方法名一样参数传递不同如何根据参数匹配_【Java学习 | Javase】方法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

整理自:動力節點Javase基礎講義、《Java核心技術》

方法

前言

  • 方法的出現是為了實現代碼的復用,對于功能性代碼,我們希望不要重復寫,而是獨立出來,可以被重復的調用

  • 所以,方法是一段可以完成某個特定功能并且可以被重復利用的代碼片段


方法定義

  • 語法格式:[修飾符列表] 返回值類型 ?方法名(形參列表)[throws 異常列表]{方法體;}

  • 若方法有返回值,則Java語法要求方法必須能夠“百分百保證”在結束時能返回該指定類型

    • 同一個域中,return語句后面不能寫任何代碼

  • 方法的返回值在接收的時候采用變量的方式接收,要求這個變量的數據類型和返回值類型一致/存在自動轉換


方法調用

  • 對于方法的修飾符列表有static關鍵字的,可以通過“類名.方法名(實參列表)”調用

    • 調用的方法在同一個類中,"類名."可省略

  • 對于方法的修飾符列表沒有static的,通過“實例對象.方法名(實參列表)”調用

  • 實參和形參必須一一對應,即個數要一樣,數據類型要對應相同/存在自動類型轉換


方法調用時的參數傳遞

  • Java中參數傳遞都是以傳值的方法執行

  • 對于基本數據類型,傳遞時相當于拷貝了一個值傳過去,在方法中對形參的改變不影響實參

  • 對于引用數據類型,傳遞時是把在堆中的對象的內存地址拷貝一份傳遞過去,這種傳遞地址的情況也稱為傳遞了一個引用,由于形參對應對象的內存地址,故對形參的改變會影響到實參(因為把堆中的對象改了),但是這時候仍然是傳值,而不是真的把實參引用傳過去。若在方法中對兩個形參交換不會影響到實參


方法執行過程中內存的變化

  • 方法區中存儲類的信息/代碼片段,方法在執行過程中需要的內存空間在棧中分配

  • 方法只定義不調用的話,只是把它的代碼片段存儲在方法區中,Java虛擬機不會在棧中給該方法分配活動空間

  • 方法調用時會給該方法在棧內存中分配所屬的活動空間,此時發生壓棧,直到該方法執行結束后,該方法在棧中對應的活動空間就會被釋放,此時發生彈棧

  • 由于棧是先入后出的,故最先調用的方法,最后才結束。采用棧才能保證方法體中的代碼遵循自上而下的順序依次執行,當前行代碼必須執行結束后,下一行代碼才能執行,比如在一個方法中調用另一個方法,必須等到另一個方法執行完畢才能進行下一行


方法重載

引入

  • 對于功能相似的代碼,若分別定義,那么開發人員要記住的方法名大大增加,若使用重載機制,則調用同一個方法名,傳入不同的實參,方法根據不同的參數實現特定的功能,看起來像是在調用同一個方法,這樣開發人員不用記那么多方法,且代碼看起來美觀

定義

  • 方法重載是指在一個類中定義多個同名的方法,但要求每個方法有不同的參數的類型或參數的個數

用的時機

  • 多個功能相似時

滿足條件

  • 同一個類

  • 方法名相同

  • 參數列表不同


代碼檢驗

  • 調用同一個類的靜態方法,可省略"類名.",但對于不同的類,不能省略

public?class?Test?{
????public?static?void?main(String[]?args)?{
????????print();
????????/*找不到符號*/
????????sayHello();
????}

????public?static?void?print(){}
}

public?class?Sub?{
????public?static?void?sayHello(){}
}
  • 在同一個域中,return后面不能有語句

public?class?Test?{
????public?static?void?main(String[]?args)?{

????}
????public?static?int?max(int?a,int?b){
????????if(a?>?b){
????????????return?a;
????????????/*Unreachable?statement*/
????????????System.out.println("hello");
????????}
????????return?b;
????}
}
  • 方法體中代碼嚴格按照自上而下的順序,因為方法調用時會入棧,方法結束時出棧,而棧是先入后出的

輸出:
main?method?start...
m1?method?start...
m2?method?start...
m2?method?over....
m1?method?over....
main?method?over....
public?class?Test?{
????public?static?void?main(String[]?args)?{
????????System.out.println("main?method?start...");
????????m1();
????????System.out.println("main?method?over....");
????}
????public?static?void?m1(){
????????System.out.println("m1?method?start...");
????????m2();
????????System.out.println("m1?method?over....");
????}
????public?static?void?m2(){
????????System.out.println("m2?method?start...");
????????System.out.println("m2?method?over....");
????}
}
  • 方法重載與修飾符列表及返回值類型沒有關系

public?class?Test?{
????public?static?void?main(String[]?args)?{??}
????public?static?void?doSome(int?i){?}
????/*Error:已在類中定義了方法?doSome(int)*/
????public?static?int?doSome(int?i){return?1;}
????public?void?doSome(){?}
????/*Error:已在類中定義了方法?doSome()*/
????public?static?void?doSome(){?}
????/*Error:已在類中定義了方法?doSome()*/
????protected?static?void?doSome(){?}
}
  • 即使是引用類型作為實參也是值傳遞,可通過在方法中交換兩個引用類型而實參沒有交換驗證

public?class?Sub{
????int?v;

????public?Sub(int?v)?{
????????this.v?=?v;
????}

????public?static?void?main(String[]?args)?{
????????Sub?s1?=?new?Sub(1);
????????Sub?s2?=?new?Sub(2);
????????System.out.println(s1.v);//1
????????System.out.println(s2.v);//2
????????swap(s1,s2);
????????System.out.println(s1.v);//1
????????System.out.println(s2.v);//2
????}
????public?static?void?swap(Sub?s1,Sub?s2){
????????Sub?temp?=?s1;
????????s1?=?s2;
????????s2?=?temp;
????}
}

總結

以上是生活随笔為你收集整理的controller方法名一样参数传递不同如何根据参数匹配_【Java学习 | Javase】方法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 国产成人精品无码播放 | 国产草草影院ccyycom | 让男按摩师摸好爽 | 国产嫩草影院久久久久 | 国产精品日韩欧美大师 | 欧美成人乱码一区二区三区 | 欧美做爰xxxⅹ性欧美大片 | 91在线高清 | 超碰碰碰碰 | 国产成人精品自拍 | av国产片 | 久久亚洲在线 | 美女脱了裤子让男人桶 | a级一片| 二区欧美 | 亚洲欧美中文日韩在线 | 日本一区二区三区免费观看 | 亚洲美女在线播放 | 尹人成人网 | 欧美精品韩国精品 | 超碰成人免费在线 | 精品一区二区三区电影 | 欧美三级午夜理伦三级老人 | 黑人精品无码一区二区三区 | 国内精品久久久久久久影视简单 | 91九色porn| 国产美女www | 亚洲一区视频在线 | 综合色吧 | 少妇真人直播免费视频 | v8888av| 色站综合 | 在线观看亚洲大片短视频 | 欧美日韩伊人 | 青青草久久伊人 | 亚洲资源站 | 亚洲乱码国产乱码精品精软件 | 人人干97| 免费国产视频在线观看 | 美女日批视频在线观看 | 又色又爽又黄18网站 | 91精品一区二区三区综合在线爱 | 国产成人精品视频一区二区 | 欧美性视频网站 | 激情文学综合网 | 91精品日韩 | 武林美妇肉伦娇喘呻吟 | 国产精品久久久久久久 | 国产视频一区二区不卡 | 国产精品一色哟哟哟 | 一级毛片aa | 久久久久国色av免费观看性色 | 色屁屁www影院免费观看入口 | 亚洲专区中文字幕 | 99免费在线视频 | 成人资源在线观看 | 欧美一级在线观看 | 国产成人免费av一区二区午夜 | 五月激情五月婷婷 | www.成人在线观看 | 亚洲色图制服诱惑 | 日本www色| 久久久7777 | 亚洲网址在线 | 国语对白做受69 | www在线播放| 国产无套内射又大又猛又粗又爽 | 特级做a爰片毛片免费69 | 国产九色 | jizz欧美大片 | 亚洲精品中文字幕成人片 | 成 人片 黄 色 大 片 | 国产小视频在线看 | 成人毛片一区二区三区 | 老王66福利网 | 国产91丝袜在线播放九色 | 亚洲日本激情 | 操人在线观看 | 亚洲涩网 | 国产日韩欧美精品一区 | 欧洲精品在线观看 | 午夜久久久久久噜噜噜噜 | 亚洲精品久久久久久久久久 | 一区二区三区www污污污网站 | 人妻少妇精品无码专区 | 欧洲亚洲女同hd | 亚洲综合成人在线 | 久久九九热视频 | 久久人人妻人人人人妻性色av | 国产精品爽爽爽 | 久草免费看 | 国产性猛交╳xxx乱大交 | 国产视频一区二区三区在线播放 | 婷婷色在线视频 | 国产精品视频你懂的 | 中文字幕av一区二区三区 | 午夜国产片 | 成人首页 | 欧美日韩亚洲一区二区三区 |