Java方法詳解
1. 方法概述
為了解決代碼重複編寫的問題,可以將需要重複編寫的代碼提取出來放在一個{}中,給這段代碼起個名字,通過這個名字來調用這段代碼就可以實現想要做的事情。提取出來的代碼可以組成一個方法。
2. 方法存在的意義
l 提高代碼的複用性。
l 增強代碼的可維護性。
3. 書寫方法的格式
l 方法格式
修飾符 返回值類型 方法名(參數類型參數名1,參數類型參數名2…) {
方法體;
return 返回值;
}
方法組成的三要素:返回值類型、方法名、參數列表。
l 方法的各個參數的說明
修飾符:public private 默認 protected。
返回值類型:返回值的數據類型,當不確定方法的返回值類型時,可以將返回值類型寫成Object(因為Object是java中的根類,可以接收任意類型的返回值)。
方法名:給方法起的一個名字。
參數類型:調用方法時傳入的數據的數據類型,參數類型包括基本數據類型和引用數據類型。
參數名:調用方法時傳入的參數的參數的名字。
方法體:實現業務功能的代碼。
Return:結束方法,返回返回值。
l 注意事項:
方法定義完成之後,在調用方法的時候才會執行方法,不調用的時候不會執行。
4. 方法調用的原理和過程
4.1 首先編寫一個java類。
4.2在java類中找到main方法,並且調用main方法。
4.3在main方法中調用sum方法。
4.4讓形參接收實參。
4.5執行sum方法內部的業務代碼。
4.6方法內部的變量在方法結束時銷燬,最後需要把返回值通過return返回方法外。
4.7結束。
5. 方法的返回值是void
l 代碼格式
修飾符 void 方法名(參數類型參數名1,參數類型參數名2…) {
方法體;
return ;
}
l 代碼示例:
public class MethodDemo01 {
public static void main(String[] args) {
getInfo();
}
public static void getInfo(){
System.out.println("返回值是void");
}
}
6. 方法重載
l 概述
在同一個類中,允許存在一個以上的同名方法,只要它們的參數個數或者參數類型不同即可。方法重載的意義是可以減輕開發人員的記憶負擔。
l 特點
與返回值類型無關。
參數列表不一樣,體現在參數的類型不一樣和個數不一樣,當個數和類型都一樣時,順序不一樣也行。
在調用時,jvm虛擬機通過參數列表的不同來區分同名方法
l 代碼示例:
public class MethodDemo02 {
public static void main(String[] args) {
int a = 10;
int b = 20;
// 求和
int result = sum(a, b);
System.out.println("result:" + result);
int c = 30;
// 求和
result = sum(a,b,c);
System.out.println("result:"+result);
}
//兩個float類型的數據求和
public static float sum(float a,float b) {
return a + b;
}
// 三個整數的求和
public static int sum(int a,int b,int c) {
return a + b + c;
}
// 兩個整數的求和
public static int sum(int a, int b) {
return a + b;
}
}
7. 方法中的參數傳遞
l 概述
當我們要調用一個方法時,我們會把指定的數據,傳遞給方法中的參數,這樣方法中的參數就擁有了這個指定的數據。這種傳遞方式,被稱為參數傳遞。
l 參數傳遞的特點
定義方法時,參數列表中的變量,是形式參數
調用方法時,傳給方法的數值,是實際參數
形式參數的改變不會影響實際參數,也可以理解為形式參數的名稱可以和實際參數的名稱不一致。
l 參數是基本數據類型時,值傳遞
代碼示例:
public class MethodDemo03 {
public static void main(String[] args) {
int a = 10;
int b = 20;
swap(a,b);
}
public static void swap(int a,int b){
int temp = a;
a = b;
b = temp;
System.out.println(a+b);
}
}
l 參數是引用數據類型時,是引用傳遞
引用傳遞的介紹:
方法中的參數是引用數據類型時,方法中傳遞的不是具體的數據,而是傳遞的是引用的地址,因此不需要返回數據。
參數指向的是堆內存中引用數據類型的對象的地址。把引用數據類型的參數(堆內存中的地址)比喻成一把鑰匙,把引用數據類型的對象比喻成一個房子,只要有相同鑰匙的人,房間對於這些人是共享的,這些人都可以對這個房間進行操作。
代碼示例:
public class MethodDemo04 {
public static void main(String[] args) {
int a = 10;
int b = 20;
int[] arr = {a,b};
swap(arr);
}
public static void swap(int[] arr){
int temp = arr[0];
arr[0] = arr[1];
arr[1] = temp;
System.out.println(arr);
}
}
閱讀更多 文瀧Vincent 的文章