天天看點

震驚!!!某教育機構一男性教師講課流程曝光!!!内容→面向對象(二)方法和方法重載

方法和方法重載

一、掌握方法的參數文法和傳回值文法

方法的文法:
// 方法聲明
通路修飾符	傳回值類型	方法名(參數清單){
	// 方法體
}

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)變量

定義的位置

成員變量是定義在類中、方法外。

局部變量是定義在類中、方法内(方法聲明(形參清單)/方法體)。

作用域

成員變量作用域是整個類中都能用。

局部變量作用域隻能應用在定義它的方法中。

生命周期:生 → 死 開始 → 結束

成員變量/執行個體變量 它是随着對象的産生而建立,随着對象的銷毀而結束。

局部變量是随着方法的壓棧而建立,随着方法的彈棧而結束。

預設值

成員變量有預設值。

局部變量沒有預設值,如果不賦初始值,無法使用。