java(方法定義、呼叫、過載)
阿新 • • 發佈:2021-07-21
1.方法
- Java方法是語句的集合,它們在一起執行一個功能
- 方法是解決一類問題的步驟的有序組合
- 方法包含於類或物件中
- 方法在程式中被建立,在其他地方被引用
- 設計方法的原則:就是一個方法只完成一個功能,這樣利於我們後期的擴充套件。(原子性)
2.定義
- Java的方法類似於其他語言的函式,是一段用來完成特定功能的程式碼片段,一般情況下,定義一個方法包含以下語法:
- 方法包含一個方法頭和一個方法體
- 修飾符:可選的,告訴編譯器,如何呼叫該方法,定義了該方法的訪問型別。
- 返回值型別:方法可能會返回值,returnValueType是方法返回值的資料型別,沒有返回值,用關鍵字void。
- 方法名:方法的實際名稱,方法名和引數表共同構成方法簽名。
- 引數型別:引數像一個佔位符,當方法被呼叫時,傳遞值給引數,這個值被稱為實參或變數,引數列表是指方法的引數型別,順序和引數的個數。引數是可選的,方法可以不包含任何引數。
- 形參:在方法呼叫時用於接收外界輸入的資料
- 實參:呼叫方法時實際傳給方法的資料
- 方法體:方法體包含具體的語句,定義該方法的功能
3.呼叫
-
呼叫方法:物件名.方法名(實參列表)
-
Java支援兩種呼叫方法的方式,根據方法是否返回值來選擇。
-
當方法返回一個值的時候,方法呼叫通常被當做一個值
-
如果方法返回值是void,方法呼叫一定是一條語句;
-
Java值傳遞
-
值傳遞:指在呼叫函式時將實際引數複製一份傳遞到函式中,這樣在函式中如果對引數進行修改,將不會影響到實際引數。
-
引用傳遞:是指在呼叫函式時將實際引數的地址直接傳遞到函式中(的形參),那麼在函式中對引數所進行的修改,將影響到實際引數。
-
基本資料型別傳值,對形參的修改不會影響實參;
-
引用型別傳引用
- 形參和實參指向同一個記憶體地址,所以對引數的修改會影響到實際的物件;
- 形參和實參指向不同記憶體地址的,則對引數的修改不會影響到實際的物件;
4.過載、
-
過載就是在一個類中,有相同的函式名稱,但形參不同的函式
-
方法過載的規則:
- 方法名稱必須相同
- 引數列表必須不同(個數不同,引數排列順序或型別不同)
- 方法的返回型別可以相同,也可以不同。
- 僅僅返回型別不同不足以成為方法的過載。
-
實現理論:
- 方法名稱相同,編譯器會根據呼叫方法的引數個數,引數型別等去逐個匹配,以選擇對應的方法,如果匹配失敗,則編譯器報錯。
public class Demo02 {
public static void main(String[] args) {
int max = max(10,20,80);
System.out.println(max);
}
public static int max(int a,int b){
int result = 0;
if(a==b){
System.out.println("a==b");
}
if(a>b){
result = a;
}else {
result = b;
}
return result;
}
public static double max(double a,double b){
double result = 0;
if(a==b){
System.out.println("a==b");
}
if(a>b){
result = a;
}else {
result = b;
}
return result;
}
public static int max(int a,int b,int c){
int result = 0;
if(a==b){
System.out.println("a==b");
}
if (a==c){
System.out.println("a==c");
}
if(b==c){
System.out.println("b==c");
}
if(a>b&&a>c){
result = a;
}
else if(b>c)
{
result = b;
}else{
result = c;
}
return result;
}
}