150天打卡day09_方法
今日內(nèi)容
方法的定義
方法的調用
方法的參數(shù)
1. 方法(函數(shù),過程)
各個語言都有方法的概念,有的語言稱為函數(shù)或過程。
生活中的方法:
在我們的日常生活中,方法可以理解為是要做某件事情,而采取的解決方法。
例如:我今早準備去上班,這就面臨著一件事情,我怎么到公司,這個問題需要解決,那解決辦法就是我可以采用公交車或者是坐出租車的方式來學校,那么,這種解決某件事情的辦法,我們就稱之為是方法。
方法用于封裝一個特定的功能,可以在程序中反復被調用,達到復用的效果。
方法有五個要素:修飾詞,返回值類型,方法名,參數(shù)列表,方法體
2.為什么要使用方法
例如:我們經(jīng)常使用的System.out.println()是什么?
println()是一個方法
System 是系統(tǒng)類
out 是標準輸出對象
這句話的用法是調用系統(tǒng)類System中的標準輸出對象out中的方法println()方法可以在程序中反復被調用,這樣可大大減少代碼的重復,從而便于程序維護。方法使程序變得更簡短而清晰可以提高程度開發(fā)的效率。
3.方法的聲明
方法用于封裝一個特定的功能,定義時需要考慮五個要素:修飾詞、返回值類型、方法名、參數(shù)列表、方法體。
修飾符:控制方法的可見范圍,方法的修飾符比較多,有對訪問權限進行限定的,有靜態(tài)修飾符static,還有最終修飾符final等,這些修飾符在后面的學習過程中會逐步介紹。
返回值類型:用于限定方法返回值的數(shù)據(jù)類型.聲明返回值必須要有return語句,如果沒有返回值使用void聲明返回值。
return關鍵字:用于結束方法以及返回方法指定類型的值
返回值:被return語句返回的值,該值會返回給調用者
方法名:方法名稱,需要遵守Java命名規(guī)范
參數(shù)列表:方法計算過程依賴的數(shù)據(jù)
參數(shù)類型:用于限定調用方法時傳入?yún)?shù)的數(shù)據(jù)類型
參數(shù)名:是一個變量,用于接收調用方法時傳入的數(shù)據(jù)
方法體:方法中計算過程,往往是可以復用的計算過程

方法的優(yōu)點是可以復用

4.方法的參數(shù)
是指在調用時傳遞給方法,需要被方法處理的數(shù)據(jù)
方法可以有參數(shù)也可以沒有參數(shù),絕大部分方法為有參數(shù)的,因為方法有參數(shù)可以使方法的處理更加靈活;
方法參數(shù)可以包含多個參數(shù)
方法的參數(shù)和方法內(nèi)部聲明的變量一樣都是局部變量,方法結束后就銷毀了
方法可以使用this.訪問當前對象的實例變量,如果與局部變量沒有沖突,可以省略局部變量
方法的參數(shù)分為實際參數(shù)和形式參數(shù)
在方法定義時,需要聲明該方法所需要的參數(shù)變量(注意:聲明該參數(shù)變量時需添加數(shù)據(jù)類型信息);
在方法調用時,會將實際的參數(shù)值(數(shù)據(jù))傳遞給方法的參數(shù)變量,同時必須保證傳遞參數(shù)的類型和個數(shù)符合方法的聲明
5.方法的返回值
方法調用結束后可以返回一個數(shù)據(jù),稱之為返回值。當然,方法調用結束后也可以不返回數(shù)據(jù),但不管是返回數(shù)據(jù)也好不返回數(shù)據(jù)也好,java語法規(guī)定,方法在聲明時必須指定返回值類型,可分如下的兩種情況進行處理:
若方法不需要返回數(shù)據(jù),將返回值類型聲明為void。
若方法需要返回數(shù)據(jù),將返回值類型聲明為特定數(shù)據(jù)類型。
如果方法需要返回數(shù)據(jù),那么返回值類型聲明為特定數(shù)據(jù)類型
return語句
當方法返回一個值的時候,方法調用通常會被當作一個值,方法調用后需要返回值,那么Java中通常使用return語句來返回。
return 語句的作用是用于結束方法并且將數(shù)據(jù)返回給調用方
例如:演示帶返回值類型的方法的調用
例如:比較兩個數(shù)字的最大值
方法的重載
為了體現(xiàn)設計的優(yōu)雅,Java支持方法重載,也就是方法名一樣,參數(shù)不同的完全不同的方法。重載的方法是完全不同的方法,只是方法名一樣。
方法的簽名
方法的簽名(signatur)包括兩部分
方法名
參數(shù)列表
是來自于英文單詞signature,每個簽名都必須是唯一的,不可以有相同的兩個簽名
那么程序在運行的時候,也是要求在一個類里面不可以有方法簽名完全一樣的兩個方法。
代碼
如果這樣寫編譯器立馬就會報編譯錯誤,但是如果方法名相同,參數(shù)列表不同的話那是可以的
有的同學會有這樣的誤區(qū),寫成這樣
public void pay(double a, int b){} public void pay(double b, int a){}
這樣也是會報編譯錯誤的a,b這兩個變量名編譯器認為他就僅僅是兩個名字而已,不做任何判斷,還是會認為這兩個方法的參數(shù)列表是一樣的
但是如果寫成這樣就是可以的
那么,在一個類里面如果有兩個方法他們的方法名相同,參數(shù)列表不同,就可以把這稱之為是方法的重載。
方法重載跟返回值類型和修飾符無關?? Java的重載 是發(fā)生在本類中的,重載的條件是在本類中有多個方法名相同,但參數(shù)列表不同(可能是,參數(shù)個數(shù)不同,參數(shù)類型不同),跟返回值無關。
歡迎??點贊+關注,筆芯??
