Java 精煉解讀方法的定義與使用
一、方法的基本用法
1.1 什么是方法(method)
方法就是一個(gè)代碼片段. 類(lèi)似于 C 語(yǔ)言中的 "函數(shù)"。方法可以把它理解為一個(gè)功能,這個(gè)功能是可以重復(fù)使用的。
1.2 方法定義語(yǔ)法?
目前來(lái)說(shuō)寫(xiě)任何方法的時(shí)候都寫(xiě)成:
pubiic static 返回值 返回名稱(形式參數(shù)列表){
函數(shù)體/方法體
}
代碼舉例:求1-n的和
/** * 求我們1-n的和 * 函數(shù)名字必須采用小駝峰 * @param n 輸入一個(gè)數(shù)字 */ public static int sumAdd(int n){ int sum = 0; for(int i = 1;i <= 10;i++){ sum += i; } return sum; } public static void main(String[] args) { int ret = sumAdd(10);//方法的調(diào)用 }
畫(huà)圖講解:
函數(shù)返回值的鏈?zhǔn)秸{(diào)用:
還是按照上面的例子給大家舉例一下:?
/** * 求我們1-n的和 * 函數(shù)名字必須采用小駝峰 * @param n 輸入一個(gè)數(shù)字 */ public static int sumAdd(int n){ int sum = 0; for(int i = 1;i <= 10;i++){ sum += i; } return sum; } public static void main(String[] args) { int ret = sumAdd(10);//方法的調(diào)用 System.out.println(sumAdd(10)*2);//函數(shù)的返回值,支持鏈?zhǔn)秸{(diào)用 }
畫(huà)圖講解:
?在Java里面沒(méi)有函數(shù)聲明,不管你的函數(shù)在main函數(shù)的上面還是在下面,都可以調(diào)用
1.3方法的開(kāi)辟?
函數(shù)開(kāi)辟內(nèi)存空間叫做函數(shù)棧幀,每個(gè)函數(shù)調(diào)用的時(shí)候都會(huì)開(kāi)辟棧幀,屬于這個(gè)函數(shù)的內(nèi)存
函數(shù)在內(nèi)存空間是如何調(diào)用的:
舉例:用函數(shù)的方法求n的階乘之和?
用函數(shù)的方法求n的階乘之和 public static int Fac(int n) { int sum = 1; for (int i = 1; i <= n; i++) { sum = sum * i; } return sum; } /** * 求n的階乘之和 * @param */ public static int facSum(int n){ int ret = 0; for (int i = 1;i <= n; i++){ ret = ret + Fac(i); } return ret; } public static void main(String[] args) { System.out.println(facSum(5)); } }
1.Java無(wú)法通過(guò)傳地址的方式交換兩個(gè)值的變量,后續(xù)會(huì)講怎么做 public class TestDemo { public static void swap(int a,int b){//交換兩個(gè)變量的值 int tmp = a; a = b; b = tmp; } public static void main(String[] args) { int a = 10; int b = 10; System.out.println("交換實(shí)參前:"+a+" " +b); swap(&a,b);//Java是做不到取地址的,如果想要寫(xiě)一個(gè)函數(shù)交換兩個(gè)數(shù)的的值,只能把a(bǔ)和b的值放到堆上 System.out.println("交換實(shí)參后:"+a+" " +b); } }
二、方法的重載?
有些時(shí)候我們需要用一個(gè)函數(shù)同時(shí)兼容多種參數(shù)的情況, 我們就可以使用到方法重載
畫(huà)圖講解:?
方法的名字都叫 add. 但是有的 add 是計(jì)算 int 相加, 有的是 double 相加; 有的計(jì)算兩個(gè)數(shù)字相加, 有的是計(jì)算三個(gè)數(shù) 字相加. 同一個(gè)方法名字, 提供不同版本的實(shí)現(xiàn), 稱為 方法重載?
三、方法的使用?
例題:用函數(shù)方式編寫(xiě)代碼模擬三次登錄場(chǎng)景
public static void login(){ int count = 3; Scanner scanner = new Scanner(System.in); while(count != 0){ System.out.println("請(qǐng)輸入你的密碼"); String password = scanner.nextLine(); if(password.equals("123456")){//equals的返回值是true或者false System.out.println("登錄成功了"); break; }else{ count--; System.out.println("你輸錯(cuò)密碼了,你還有"+count+"次機(jī)會(huì)"); } } } public static void main(String[] args) { login(); }
例題:函數(shù)求水仙花數(shù)?
求水仙花數(shù) public static void findNum(int n){ for (int i = 1; i <=n; i++) { int count = 0;//數(shù)字的位數(shù) int tmp = i; while(tmp != 0){ count++; tmp = tmp/10; } tmp = i; int sum = 0; while(tmp != 0){ sum += Math.pow(tmp%10,count); tmp/=10; } if(sum == i){ System.out.println(i); } } } public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int n = scanner.nextInt(); findNum(n); }
例題:求奇數(shù)位于偶數(shù)之前?
調(diào)整數(shù)組順序使得奇數(shù)位于偶數(shù)之前,調(diào)整之后,不關(guān)心大小順序 public class TestDemo { public static void main(String[] args) { int[]arr = {1,2,3,4,5,6,7,8,9}; int left = 0; int right = arr.length-1; while(left < right){ while(left < right && arr[left] % 2 != 0){ left++; } while(left < right && arr[right] % 2== 0){ right--; } int tmp = arr[left]; arr[left] = arr[right]; arr[right] = tmp; } for (int i = 0; i <arr.length ; i++) { System.out.print(arr[i]+" "); } } }
例題: 函數(shù)求三個(gè)數(shù)的最大值
1.用函數(shù)求三個(gè)數(shù)的最大值 public class TestDemo { public static int Max(int a,int b){ return a > b? a : b; } public static int Max1(int a,int b,int c){ return Max(Max(a,b),c); } public static void main(String[] args) { System.out.println(Max1(4, 6, 8)); } }
總結(jié):
本文簡(jiǎn)單介紹了什么是方法、方法的重載、方法如何使用。通過(guò)簡(jiǎn)單例題的方式加深對(duì)方法的印象。上述就是今天的內(nèi)容,有任何疑問(wèn)的話可以隨時(shí)私信我,文章哪里出現(xiàn)了問(wèn)題我都會(huì)積極改正,也希望大家能更快的掌握自己想要的知識(shí),讓我們一起加油!?。。?!
我與你同在。
到此這篇關(guān)于Java 精煉解讀方法的定義與使用的文章就介紹到這了,更多相關(guān)Java 方法內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
springboot引用kettle實(shí)現(xiàn)對(duì)接oracle數(shù)據(jù)的示例代碼
這篇文章主要介紹了springboot引用kettle實(shí)現(xiàn)對(duì)接oracle數(shù)據(jù),其實(shí)kettle集成到springboot里面沒(méi)有多少代碼,這個(gè)功能最主要的還是ktr文件的編寫(xiě),只要ktr編寫(xiě)好了,放到指定文件夾下,寫(xiě)個(gè)定時(shí)任務(wù)就完事了,需要的朋友可以參考下2022-12-12零基礎(chǔ)寫(xiě)Java知乎爬蟲(chóng)之進(jìn)階篇
前面幾篇文章,我們都是簡(jiǎn)單的實(shí)現(xiàn)了java爬蟲(chóng)抓取內(nèi)容的問(wèn)題,那么如果遇到復(fù)雜情況,我們還能繼續(xù)那么做嗎?答案當(dāng)然是否定的,之前的僅僅是入門(mén)篇,都是些基礎(chǔ)知識(shí),給大家練手用的,本文我們就來(lái)點(diǎn)高大上的東西2014-11-11idea 創(chuàng)建 maven web 工程流程(圖文教程)
這篇文章主要介紹了idea 創(chuàng)建 maven web 工程流程(圖文教程),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-05-05springboot 獲取工具類(lèi)bean過(guò)程詳解
這篇文章主要介紹了springboot 獲取工具類(lèi)bean過(guò)程詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-09-09java前后端加密解密crypto-js的實(shí)現(xiàn)
這篇文章主要介紹了java前后端加密解密crypto-js的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-05-05java連接數(shù)據(jù)庫(kù)知識(shí)點(diǎn)總結(jié)以及操作應(yīng)用
這篇文章主要給大家介紹了關(guān)于java連接數(shù)據(jù)庫(kù)知識(shí)點(diǎn)總結(jié)以及操作應(yīng)用的相關(guān)資料, 當(dāng)涉及到Java中數(shù)據(jù)庫(kù)數(shù)據(jù)處理時(shí),我們可以利用強(qiáng)大的Java數(shù)據(jù)庫(kù)連接技術(shù)與各種數(shù)據(jù)庫(kù)進(jìn)行交互,需要的朋友可以參考下2023-12-12SpringCloud?Gateway詳細(xì)分析實(shí)現(xiàn)負(fù)載均衡與熔斷和限流
這篇文章主要介紹了SpringCloud?Gateway實(shí)現(xiàn)路由轉(zhuǎn)發(fā),負(fù)載均衡,熔斷和限流,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-07-07