java基礎(07)、函數

版權聲明

原創作者:是飄飄呀!
博客地址:https://blog.csdn.net/weixin_44216392


函數

首先,當我們看到函數這兩個字是什麼反應呢?二元二次函數、三角函數…?哦不是的呢!在我們java裏的函數也叫方法是爲了提高代碼的複用性,就把某個功能單獨封裝成一小段獨立的程序,當下次需要執行這個功能的時候,直接調用封裝的這段小程序即可實現,那麼這種以封裝的具體表現形式我們就稱之爲函數

接下來我們先看一個兩數相加的小栗子:

public static void main(String[] args) {
		/*
		 * 最開始的寫法
		 * int a = 3; 
		 * int b = 4; 
		 * System.out.println(a+b);
		 */
		System.out.println(add(5, 8));
	}
	
	public static int add(int a,int b) {
		return a+b;
	}

那我們怎麼理解這個函數呢;
舉例:地鐵自動售票機,接收紙幣或硬幣,返回車票,該售票機具有獨立功能,可以理解爲函數。

那接下來我們正式進入函數的學習

函數的格式

修飾符  返回值類型  函數名(參數類型 形式參數1,參數類型 形式參數2,){
	執行語句;
	return  返回值;
}
返回值類型:運行這段程序得出的一個運算結果,結果類型,如果函數沒有返回值,則總void來表示該函數沒有返回值
函數名:僅僅是一個標識符,可以隨意起名字但要符合java命名規範
形式參數:是一個變量,用於存儲調用函數傳遞進來的實際參數
實際參數:傳遞給形式參數的具體數值
返回值:返回給調用者

在我們定義一個函數的時候需要搞清楚地方:

  • 是否有位置內容參與運算
  • 是否具有返回值

栗子2:

	public static int getMax(int a,int b) {
		int result;
		if(a>b) {
			result=a;
		}else {
			result=b;
		}
		return result;
	}

現在我們仔細的解析一下這串代碼:
該方法方法名爲:getMax,方法的作用是獲取找出兩個整數中較大的值。
該方法有兩個int型參數,:x和y,方法返回兩個數中較大的一個。
public static 是方法的修飾符
int 是方法的返回值類型
getMax 是方法的方法名
**(int x,int y)**是參數列表,x和y是形式參數。
{} 花括號內的代碼是方法體
return result; result 是返回值。

那如何調用函數呢,在我們定義好函數後,想要使用就必須先調用;

public static void main(String[] args) {
		System.out.println(getMax(-5, 8));
		int max = getMax(100, -1000);
		System.out.println(max);
	}

在main方法中調用getMax()方法,100和-1000就是給該方法傳遞的實際參數。如果方法有返回值,可以定義一個變量接收返回值,變量類型和方法返回值類型一致。本例中通過int類型變量max接收了getMax方法的返回值。

方法什麼時候執行完畢?
當執行完return語句,或者執行到方法末尾的花括號時方法結束。

函數的特點

  • 定義函數可以將功能代碼進行封裝
  • 便於對該功能進行復用
  • 函數只有被調用纔會被執行
  • 函數的出現提高了代碼的複用性
  • 對於函數沒有具體返回值的情況,返回值類型用關鍵字void表示,那麼該函數中的return語句如果在最後一行可以省略不寫。

編寫函數是需要注意:

  • 方法不調用不執行,換一句說:方法只有被調用後纔會執行
  • 方法與方法是平級關係,不能嵌套定義;即不可在方法中再定義方法
  • 方法定義的時候參數之間用逗號隔開
  • 方法調用的時候不用再傳遞數據類型
  • 如果方法有明確的返回值,一定要有return帶回一個值
  • 函數的結果應該返回給調用者,交由調用者處理
  • return語句執行後,將終止本函數的執行,即函數執行完成,也就是說在return後面的語句是不起作用的,切編譯器也會報錯。

函數的應用

  • 成績等級
public class Demo01 {

	public static void main(String[] args) {
	//調用方法,傳入實參
	printGrade(90);
	printGrade(59.5);
		
	}
	public static void printGrade(double score) {
		if (score >= 90.0)
			System.out.println("A");
		else if (score >= 80.0)
			System.out.println("B");
		else if (score >= 70.0)
			System.out.println("C");
		else if (score >= 60.0)
			System.out.println("D");
		else
			System.out.println("E");
	}
}

結果如下:
在這裏插入圖片描述

  • 畫矩形
public static void  draw(int width , int height){
		for(int i = 0 ; i< height ; i++){
			for(int j = 0 ; j < width ; j++){
				System.out.print("*");
			}
			System.out.println();
		}

在這裏插入圖片描述

函數的重載

在同一個類中,可以有一個以上的方法使用相同的方法名,但這些方法的參數必須不同,或者是參數個數不同,或者是參數類型不同,這些方法成爲方法(函數)重載;
判斷兩個方法之間是否重載,這和方法的返回類型無關,也和拋出的異常類型無關,只和方法的參數有關。

例如:

//方法的參數類型和順序不同
public String methodName(int i, String name, int j)
public String methodName(int i, int j)
public String methodName(int i, String name)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章