Java基礎(六)-方法函數

方法/函數

將一段邏輯或者功能提取出來,這種提取的形式就是函數

格式

修飾符 返回值類型 函數名(參數列表){

方法體;

return 返回值;

}

//明確返回值類型---求兩個整數的和,確定結果一定是整數---返回值類型是int
//明確函數執行過程中是否有未知量參與---求兩個整數的和,這兩個整數在函數執行過程中不能自動產生,是兩個未知量,未知量需要以參數的形式體現
//定義參數相當於在聲明瞭幾個變量
//在函數中聲明的參數---形參---形式參數
//函數名+參數列表---方法簽名---add(int i, int j)
public static int add(int i, int j){
	int sum = i + j;
	return sum;
}
//調用函數的時候傳入的實際值---實參---實際參數
add(3,5);

實參(argument):
  全稱爲"實際參數"是在調用時傳遞給函數的參數. 實參可以是常量、變量、表達式、函數等, 無論實參是何種類型的量,在進行函數調用時,它們都必須具有確定的值, 以便把這些值傳送給形參。 因此應預先用賦值,輸入等辦法使實參獲得確定值。      
形參(parameter):
全稱爲"形式參數" 由於它不是實際存在變量,所以又稱虛擬變量。是在定義函數名和函數體的時候使用的參數,目的是用來接收調用該函數時傳入的參數.在調用函數時,實參將賦值給形參。因而,必須注意實參的個數,類型應與形參一一對應,並且實參必須要有確定的值。形式參數:形參是函數被調用時用於接收實參值的變量。

注意

1.如果函數沒有返回值,那麼返回值類型定義爲void

2. return後續的代碼不再執行

3. 任何一個實體函數都有return語句

構造方法

在類中與類同名而沒有返回值類型的方法---主要是用於創建對象

構造方法可以重載

如果一個類沒有手動提供構造函數,那麼JVM在編譯的時候會添加一個無參的構造方法。

構造方法沒有返回值類型,也沒有返回值,能寫return語句嗎?---可以---規避風險


重載

一個類中存在了函數名一致,而參數列表不一致的函數的時候,稱這多個函數之間構成了重載。

函數在調用的時候會最先匹配格式最一致

當進行函數重載的時候,儘量重載所有的情況,以防出現多個函數都匹配的情況

練習

1.任何一個大於等於6的偶數都可以分解成兩個質數的和

14 = 3 + 11

14 = 7 + 7


2. 親密數:如果A的所有因數(含1,不含本身)之和等於B,且B的所有因數之和(含1不含本身)等於A,A和B是一對親密數。輸出3000以內所有的親密數


重寫

在父子類中存在了方法簽名完全一致的方法---產生了方法的重寫

注意:方法的重寫遵循 兩等兩小一大 這五個要求

1. 方法簽名要求完全一致

2. 如果父類中方法的返回值類型是基本類型/void/最終類,子類中重寫的方法的返回值類型必須一致

3. 如果父類方法的返回值類型是引用數據類型,那麼子類重寫的方法的返回值類型是父類方法返回值類型的子類或者是本身

class A {}
class B extends A{}
class C{
public A m(){
return null;
}
}
class D extends C {
public B m(){
return null;
}
}

4.子類拋出異常小於等於父類方法拋出異常

5. 子類方法的權限修飾符的範圍要大於等於父類方法的權限修飾符的範圍

class A{
protected void m(){}
}
class B extends A{
public void m(){}
}

權限修飾符

用於限定變量或者方法的使用範圍的

 

本類中

子類中

同包類中

其他類中

public

可以

可以

可以

可以

protected

可以

可以

可以

不可以

默認

可以

同包子類可以

可以

不可以

private

可以

不可以

不可以

不可以


函數的遞歸

指在函數中調用自己本身

StackOverflowError---棧溢出錯誤---反應函數在棧中執行---函數在執行完成之前不會釋放棧內存---遞歸的次數太多,就會出現這個錯誤


注意:基本數據類型傳參傳的是實際值,對於引用類型而言傳參傳的是地址

練習:求任意一個數的階乘


發佈了0 篇原創文章 · 獲贊 11 · 訪問量 2414
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章