方法和方法重載
一、掌握方法的參數文法和傳回值文法
方法的文法:
// 方法聲明
通路修飾符 傳回值類型 方法名(參數清單){
// 方法體
}
public void xxx(){
xxxx
}
方法/函數的分類
前期容易混亂于 定義哪種類型的方法
1.無參無返(沒有參數清單 沒有傳回值
單純的作為 功能代碼的聚合使用 便與功能的複用
public void show(){
xxx
}
2.無參有返(沒有參數清單 有傳回值)
單純的隻是想通過調用某個功能 得到某些結果的時候就可以使用了。
例如:我需要每次生成一個随機卡号
public int nextInt(){
// 如果有傳回值 必須使用return來傳回
return 10; // return :傳回 結束目前方法 傳回到方法調用者的位置
}
3.有參無返(有參數清單 沒有傳回值)
Arrays.sort(數組); // 給數組排序
适用于 功能需要根據參數來進行計算的情況 但是計算的最終結果 又無需傳回處理
public void plus(double num1,double num2){
syso(num1+num2);
}
4.有參有返(有參數清單,有傳回值)
Arrays.toString(數組);
适用于 功能需要根據參數來進行計算的情況 而且最終的結果需要被我們拿到(傳回處理)
例:
public String toString(int[] arr){
return xxx;
}
方法的形參和實參
形參:是定義在方法聲明上,用于指定該方法需要傳遞的參數類型的。
實參:是在調用方法時,實際傳遞的參數值。
通路修飾符 傳回值類型 方法名(形式參數清單){
// 方法體
}
// 調用方法
對象名.方法名(實際參數);
// num1和num2 是形式參數
public void plus(double num1,double num2){
syso(num1+num2);
}
// 10和20是實際參數
// plus(10,20);
/* int di1 = 10;
int di2 = 20;
plus(di1,di2); */
int num2 = 10;
int num1 = 20;
puls(num2,num1);
二、掌握方法的參數為基本資料類型/引用資料類型時的差別
基本資料類型作為參數傳值:
傳值傳的是值得内容,來到了另一個方法空間之後,這個值和之前沒有任何關系。(例:拷貝網盤内容)
引用資料類型作為參數傳值:
傳值傳的是對象在堆得位址值,是以兩個内容是指向了同一塊空間,時互相有影響的。
三、會使用構造方法
例:
public class Stident{
public String name;
public int age;
public double score;
public int classId;
/*
無參構造
構造方法/函數/器 constructor
和普通方法的差別
沒有傳回值類型
方法名必須和類名相同
普通方法:你定義就是為了存儲某個功能
構造方法:[建立對象 進行對象的初始化] 如果你沒有編寫過 系統預設提供 但是隻要你自己編寫了那麼系統将不再提供 */
public Student(){
System.out.println("學生的無參構造執行了!")
classId = 335;
}
/*
帶參構造
param stuName
param stuAge
param stuScore */
public Student(String stuName,int stuAge,double stuScore){
name = stuName
age = stuAge
score = stuScore
classId = 335;
}
}
this關鍵字
this表示目前對象,誰在調用這個方法 誰就是目前對象!
可以用來調用成員變量/執行個體變量。 this.屬性名
可以用來調用成員方法 this.方法名()
它也可以用來調用構造方法 this(xxx);必須寫在構造中的有效代碼的第一行。
四、掌握方法重載
方法名相同,參數清單不同(個數不同、類型不同、位置/順序不同)的情況 就是方法重載,和傳回值類型、通路修飾符無關!
public void hehe(int num1,String num2){
}
public int hehe(String num2,int num1){
}
方法重載目的:為了能夠讓同一個方法執行n種處理。(多個方法 時進行類似功能的處理,隻不過處理的單元不同而已,這時候為了不再花樣起名 就使用了方法重載)
System.out.println("");
Arryas.toString();
五、掌握成員變量和局部變量的差別
在類中定義的屬性:成員變量
在方法中定義的變量:局部(Local)變量
定義的位置
成員變量是定義在類中、方法外。
局部變量是定義在類中、方法内(方法聲明(形參清單)/方法體)。
作用域
成員變量作用域是整個類中都能用。
局部變量作用域隻能應用在定義它的方法中。
生命周期:生 → 死 開始 → 結束
成員變量/執行個體變量 它是随着對象的産生而建立,随着對象的銷毀而結束。
局部變量是随着方法的壓棧而建立,随着方法的彈棧而結束。
預設值
成員變量有預設值。
局部變量沒有預設值,如果不賦初始值,無法使用。