Java 精煉解讀方法的定義與使用
一、方法的基本用法
1.1 什么是方法(method)
方法就是一個(gè)代碼片段. 類似于 C 語言中的 "函數(shù)"。方法可以把它理解為一個(gè)功能,這個(gè)功能是可以重復(fù)使用的。
1.2 方法定義語法?
目前來說寫任何方法的時(shí)候都寫成:
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)用
}
畫圖講解:

函數(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)用
}
畫圖講解:

?在Java里面沒有函數(shù)聲明,不管你的函數(shù)在main函數(shù)的上面還是在下面,都可以調(diào)用
1.3方法的開辟?
函數(shù)開辟內(nèi)存空間叫做函數(shù)棧幀,每個(gè)函數(shù)調(diào)用的時(shí)候都會(huì)開辟棧幀,屬于這個(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無法通過傳地址的方式交換兩個(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是做不到取地址的,如果想要寫一個(gè)函數(shù)交換兩個(gè)數(shù)的的值,只能把a(bǔ)和b的值放到堆上
System.out.println("交換實(shí)參后:"+a+" " +b);
}
}
二、方法的重載?
有些時(shí)候我們需要用一個(gè)函數(shù)同時(shí)兼容多種參數(shù)的情況, 我們就可以使用到方法重載
畫圖講解:?

方法的名字都叫 add. 但是有的 add 是計(jì)算 int 相加, 有的是 double 相加; 有的計(jì)算兩個(gè)數(shù)字相加, 有的是計(jì)算三個(gè)數(shù) 字相加. 同一個(gè)方法名字, 提供不同版本的實(shí)現(xiàn), 稱為 方法重載?
三、方法的使用?
例題:用函數(shù)方式編寫代碼模擬三次登錄場景
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é):
本文簡單介紹了什么是方法、方法的重載、方法如何使用。通過簡單例題的方式加深對(duì)方法的印象。上述就是今天的內(nèi)容,有任何疑問的話可以隨時(shí)私信我,文章哪里出現(xiàn)了問題我都會(huì)積極改正,也希望大家能更快的掌握自己想要的知識(shí),讓我們一起加油?。。。?!
我與你同在。
到此這篇關(guān)于Java 精煉解讀方法的定義與使用的文章就介紹到這了,更多相關(guān)Java 方法內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
SpringBoot創(chuàng)建動(dòng)態(tài)定時(shí)任務(wù)的幾種方式小結(jié)
SpringBoot提供了多種實(shí)現(xiàn)定時(shí)任務(wù)的方式,包括使用@Scheduled注解、SchedulingConfigurer接口、TaskScheduler接口和Quartz框架,@Scheduled適合簡單的定時(shí)任務(wù),文中通過代碼示例介紹的非常詳細(xì),需要的朋友可以參考下2024-10-10
Java使用FilenameFilter查找出目錄下指定后綴的文件示例
這篇文章主要介紹了Java使用FilenameFilter查找出目錄下指定后綴的文件,結(jié)合實(shí)例形式分析了java基于FilenameFilter類的文件遍歷、查找相關(guān)操作技巧,需要的朋友可以參考下2019-10-10
Java8進(jìn)行多個(gè)字段分組統(tǒng)計(jì)的實(shí)例代碼
在本篇文章里小編給大家分享的是關(guān)于Java8進(jìn)行多個(gè)字段分組統(tǒng)計(jì)的實(shí)例代碼,需要的朋友們可以學(xué)習(xí)下。2020-05-05
解決mybatis一對(duì)多查詢r(jià)esultMap只返回了一條記錄問題
小編接到領(lǐng)導(dǎo)一個(gè)任務(wù)需求,需要用到使用resultMap相關(guān)知識(shí),在這小編記錄下這個(gè)問題的解決方法,對(duì)mybatis一對(duì)多查詢r(jià)esultMap項(xiàng)目知識(shí)感興趣的朋友一起看看吧2021-11-11
IDEA集成DeepSeek通過離線安裝解決無法安裝Proxy?AI插件問題(最新推薦)
許多開發(fā)者嘗試通過安裝Proxy?AI等插件將AI能力引入IDEA,但在實(shí)際使用中常遭遇插件安裝失敗、網(wǎng)絡(luò)連接不穩(wěn)定或兼容性沖突等問題,本文給大家介紹IDEA集成DeepSeek通過離線安裝解決無法安裝Proxy?AI插件問題,感興趣的朋友一起看看吧2019-12-12
java新增關(guān)聯(lián)的三張表,每張表要求都插入集合,代碼實(shí)現(xiàn)方式
這篇文章主要介紹了java新增關(guān)聯(lián)的三張表,每張表要求都插入集合,代碼實(shí)現(xiàn)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-12-12
java監(jiān)聽器實(shí)現(xiàn)在線人數(shù)統(tǒng)計(jì)
這篇文章主要為大家詳細(xì)介紹了java監(jiān)聽器實(shí)現(xiàn)在線人數(shù)統(tǒng)計(jì),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-11-11
網(wǎng)易Java程序員兩輪面試 請(qǐng)問你能答對(duì)幾個(gè)?
為大家分享網(wǎng)易Java程序員兩輪面試題,考考大家,這些問題你能答對(duì)幾個(gè)?2017-11-11
Java中Cookie和Session詳解及區(qū)別總結(jié)
這篇文章主要介紹了Java中Cookie和Session詳解,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,感興趣的小伙伴可以參考一下2022-06-06

