方法
一個(gè)可以完成獨(dú)立功能的代碼塊
語(yǔ)法
返回值類(lèi)型 方法名(形參){
}
class Test{
public static void main(String[] args){
int x = add(3,5);
System.out.println(x);
System.out.println(add(x,5));
}
public static int add(int a,int b){
int sum = a+b;
return sum;
}
}
返回值: 必須有
方法名字:必須有
小括號(hào): 必須有
形式參數(shù):根據(jù)需要設(shè)定,也可以沒(méi)有形式參數(shù)
方法可以看成完成功能的代碼塊
大括號(hào): 必須有: 但是功能語(yǔ)句可以任意寫(xiě)
方法的使用
- 方法有static修飾:類(lèi)名.方法名+參數(shù)列表[個(gè)數(shù),順序,類(lèi)型必須一致]
- 方法沒(méi)有static修飾:對(duì)象名.方法名+參數(shù)列表[個(gè)數(shù),順序,類(lèi)型必須一致]
- 方法在同一個(gè)類(lèi)中:方法名+參數(shù)列表[個(gè)數(shù),順序,類(lèi)型必須一致]
方法簽名
方法名字+參數(shù)列表[類(lèi)型,個(gè)數(shù),順序:必須一致]
方法重載(overload)
在同一個(gè)類(lèi)中,方法名字相同,參數(shù)列表不同
//計(jì)算兩個(gè)數(shù)的和
public static int add(int a,int b){
int sum = a+b;
System.out.println(sum);
return sum;
}
//計(jì)算三個(gè)數(shù)的和
public static int add(int a,int b,int c){
int sum = a+b+c;
System.out.println(sum);
return sum;
}
//計(jì)算四個(gè)數(shù)的和
public static int add(int a,int b,int c,int d){
int sum = a+b+c+d;
System.out.println(sum);
return sum;
}
return 語(yǔ)句
-
方式:將方法運(yùn)算的結(jié)果返回給方法調(diào)用著,方法內(nèi)部將運(yùn)算結(jié)果使用語(yǔ)句:
return 值/變量/表達(dá)式;
方法返回值的位置,必須寫(xiě)與方法內(nèi)部返回值的數(shù)據(jù)一致的數(shù)據(jù)類(lèi)型
注意:返回的是數(shù)據(jù),不是變量或者表達(dá)式
數(shù)組
一段連續(xù)的存儲(chǔ)空間 用來(lái)存放某種類(lèi)型的多個(gè)變量值
語(yǔ)法
//動(dòng)態(tài)創(chuàng)建之先聲明后賦值
數(shù)據(jù)類(lèi)型[] 數(shù)組名;
數(shù)組名 = new 數(shù)據(jù)類(lèi)型[數(shù)組長(zhǎng)度];
//靜態(tài)創(chuàng)建之復(fù)雜寫(xiě)法
//1.聲明的同時(shí)賦值
數(shù)據(jù)類(lèi)型[] 數(shù)組名 = new 數(shù)據(jù)類(lèi)型[] {多個(gè)以英文逗號(hào)分隔的元素};
//2.先聲明后賦值
數(shù)據(jù)類(lèi)型[] 數(shù)組名;
數(shù)組名 = new 數(shù)據(jù)類(lèi)型[] {多個(gè)以英文逗號(hào)分隔的元素};
//簡(jiǎn)寫(xiě)
數(shù)據(jù)類(lèi)型[] 數(shù)組名 ={多個(gè)以英文逗號(hào)分隔的元素};
特點(diǎn)
- 創(chuàng)建以后 長(zhǎng)度固定不變
- 只能存同一種類(lèi)型 的多個(gè)變量值
jvm存儲(chǔ)
- 基本數(shù)據(jù)類(lèi)型 打印的時(shí)具體的值 因?yàn)樗闹荡娣旁跅V?/li>
- 引用數(shù)據(jù)類(lèi)型 打印的時(shí)候是一個(gè)引用地址 因?yàn)樗唧w的存放區(qū)域存放堆中 String除外
數(shù)組的遍歷
//數(shù)組的長(zhǎng)度:數(shù)組名.length
int[] arr={2,4,12,124,122};
for(int i = 0;i<arr.length;i++){
return i;
}
方法的參數(shù)傳遞
- 值傳遞:方法傳遞的是值
- 形式參數(shù)類(lèi)型是基本數(shù)據(jù)類(lèi)型
- 基本類(lèi)型數(shù)據(jù)傳遞的是值
- 值引用:方法傳遞的是值的引用
- 形式參數(shù)類(lèi)型是引用數(shù)據(jù)類(lèi)型
- 引用傳遞其實(shí)傳的是地址,形式參數(shù)類(lèi)型是引用數(shù)據(jù)類(lèi)型或數(shù)組。
- 實(shí)際參數(shù)(數(shù)據(jù))是對(duì)象(或數(shù)組),這時(shí)實(shí)際參數(shù)與形式參數(shù)指向同一個(gè)地址
- 在方法執(zhí)行中,對(duì)形式參數(shù)的操作實(shí)際上就是對(duì)實(shí)際參數(shù)的操作,這個(gè)結(jié)果在方法結(jié)束后被 保留了下來(lái),所以方法執(zhí)行中形式參數(shù)的改變將會(huì)影響實(shí)際參數(shù)
注意事項(xiàng)
方法調(diào)用時(shí),實(shí)際參數(shù)把它的值傳遞給對(duì)應(yīng)的形式參數(shù),相當(dāng)于拷貝了一份值給形式參數(shù),所以方法執(zhí)行中形式參數(shù)值的改變不影響實(shí)際參數(shù)的值。
- 基本數(shù)據(jù)不影響原來(lái)的值
- 引用數(shù)據(jù)不影響原來(lái)的地址值:
- 引用地址,引用的值,如果被改變,原來(lái)引用的的值所引用的值也會(huì)被改變,因?yàn)槎际峭粋€(gè)引用