- 資訊首頁(yè) > 開(kāi)發(fā)技術(shù) > 編程語(yǔ)言 >
- java基礎之方法詳解
1.方法是解決一類(lèi)問(wèn)題的步驟的有序組合
2.方法包含于類(lèi)或對對象中
3.方法在程序中被創(chuàng )建,在其他地方被應用
當然只讀文字不能完全理解,下面的代碼一定要自己一個(gè)個(gè)敲,仔細品味:
//類(lèi) public class Demo01 { //mian方法,可理解為系統自定義的一個(gè)方法(一個(gè)類(lèi)中必須要有mian方法) public static void main(String[] args) { int sum=add(1,2); System.out.println(sum); } //自定義一個(gè)"加法" //方法中寫(xiě)入了static是為了其他方法中方便調用它(要配合return),這可以理解為一個(gè)類(lèi)變量 public static int add(int a,int b){ return a+b;//將定義的加法,返回到上面調用它的mian方法中去 } }
下面是返回為空的情況(viod)(注釋很重要):
public class Demo02 { //mian方法 public static void main(String[] args) { test();//將下面自定義的方法調用,結果會(huì )輸出1 } //自定義一個(gè)方法test()方法 public static void test(){//void相當于返回為空,則不用與return連用, int a=1; System.out.println(a); /* 因為這次的定義的變量在test()方法中, mian方法在調用時(shí),在mian方法中找不到變量,則返回值為空,用viod。 這樣讓mian方法更簡(jiǎn)潔,能直接調用test()方法, 返回值為空是,不能用return返回, */ } }
1.修飾符:這是可選的,告訴編譯器如何調用該方法。定義了該方法的訪(fǎng)問(wèn)類(lèi)型。
2.返回值類(lèi)型:方法可能會(huì )返回值。returnValueType是方法返回值的數據類(lèi)型。有些方法執行所需的操作,但沒(méi)有返回值,即返回為空。在這種情況下,returnValueType是關(guān)鍵字void。
3.方法名 :是方法的實(shí)際名稱(chēng)。方法和參數表共同構成方法簽名。
4.參數類(lèi)型:參數像是一個(gè)占位符,當方法值給參數。這個(gè)值被稱(chēng)為實(shí)參或變量。參數列表是指方法的參數類(lèi)型、順序和參數個(gè)數。參數是可選的,方法不包含任何參數。
形式參數:在方法被調用時(shí)用于接受外界輸入數據。
實(shí)參:調用方法是實(shí)際傳給方法的數據。
方法體:方法體包含具體的語(yǔ)句,定義該方法的功能。
以上文字結合下圖思考
結合上面文字,認真分析下邊的代碼:
public class Demo03 { //main方法 public static void main(String[] args) { int max = max(20,20); System.out.println(max); } //自定義一個(gè) 比大小 的方法 public static int max(int num1,int num2){ int reason=0; if (num1==num2){ reason=num1; System.out.print("兩值相等都為" ); return reason;//return除了能返回值,還有終止方法的意思,代碼在運行,return后面的語(yǔ)句將不再執行 } if (num1>num2){ reason=num1; }else { reason=num2; } return reason; } }
提示:return有終止方法的功能,即在方法中有return成功被執行,那么其后面的代碼將不會(huì )運行。
int larger=max(30,40);
System.out.println(“hello!”);
1.方法名稱(chēng)必須相同。
2.參數列表必須不同(個(gè)數不同、或類(lèi)型不同、參數排列順序不同等)。
3.方法的返回類(lèi)型可以相同也可以不相同。
4.僅僅返回類(lèi)型不同不足以成為方法的重載。
方法名稱(chēng)相同時(shí),編譯器會(huì )根據調用的方法的參數個(gè)數,參數類(lèi)型等去逐個(gè)匹配,以選擇對應的方法,如果匹配失敗,則編譯器報錯。
重載例用如下:
public class Demo05 { public static void main(String[] args) { //調用int類(lèi)型的加法 int sum=add(2,3); System.out.println(sum); } //定義一個(gè)double類(lèi)型的加法 public static double add(double a1,double a2){ double a=a1+a2; return a; } //定義一個(gè)int類(lèi)型的加法 public static int add(int a1,int a2){ int a=a1+a2; return a; } /* 定義的double類(lèi)型的加法和int類(lèi)型的加法 這兩個(gè)方法的參數類(lèi)型不同,方法名稱(chēng)相同. */ }
可變參數
public class Demo07 { public static void main(String[] args) { Demo07 demo07=new Demo07(); demo07.test(1,5,565,15,1212); } public void test(int a,int...i){//int...i必須是方法的最后一個(gè)參數 System.out.println(i[0]);//i[0]提取int...i(可以理解為數組)中第1個(gè)數 System.out.println(i[1]);//提取第2個(gè)數 System.out.println(i[2]); System.out.println(i[3]); System.out.println(i[4]); } }
1.遞歸頭:什么時(shí)候不調用自身方法。如果沒(méi)有頭,將陷入死循環(huán)。
2.遞歸體:什么時(shí)候需要調用自身方法。
//遞歸 public class Demo08 { public static void main(String[] args) { int b=f(4); System.out.println(b); } //階層(自己調用自己) public static int f(int n){ if(n==1){ return 1; }else { return n*f(n-1);//n*(n-1)*(n-1-1)*...*1 } } }
到此這篇關(guān)于java基礎之方法詳解的文章就介紹到這了,更多相關(guān)java方法詳解內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng )、來(lái)自互聯(lián)網(wǎng)轉載和分享為主,文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權請聯(lián)系站長(cháng)郵箱:ts@56dr.com進(jìn)行舉報,并提供相關(guān)證據,一經(jīng)查實(shí),將立刻刪除涉嫌侵權內容。
Copyright ? 2009-2021 56dr.com. All Rights Reserved. 特網(wǎng)科技 版權所有 珠海市特網(wǎng)科技有限公司 粵ICP備16109289號
域名注冊服務(wù)機構:阿里云計算有限公司(萬(wàn)網(wǎng)) 域名服務(wù)機構:煙臺帝思普網(wǎng)絡(luò )科技有限公司(DNSPod) CDN服務(wù):阿里云計算有限公司 中國互聯(lián)網(wǎng)舉報中心 增值電信業(yè)務(wù)經(jīng)營(yíng)許可證B2