綠米 Aqara 智慧寵物餵食器 C1 發售:369 元,糧食鎖鮮設計 / 不怕斷網斷電
阿新 • • 發佈:2021-12-22
1.方法的定義和呼叫
方法的定義
-
定義:方法是語句的集合,在一起執行一個功能,方法是解決一類問題的步驟的有序組合,方法包含於類或物件中,方法在程式中被建立,在其他地方被引用
-
設計方法的原則:方法的本意是功能塊,就是實現某個功能的語句塊的集合,我們設計方法的時候,最好保持方法的原子性,即一個方法只完成一個功能
-
方法的命名規則:首字母小寫和駝峰原則
//加法
int sum=add(a:1,b:2);//呼叫方法,1和2就是實際引數
System.out.println(sum);
public static int add(int a,int b){
return a+b;//a,b是形參
}//定義方法
格式:
修飾符 返回值型別 方法名(引數型別 引數名){...
方法體
...
return 返回值;
}
-
返回值型別,有返回值就寫返回值型別,沒有返回值就寫關鍵字void。如果存在返回值,一定要通過return返回
-
引數型別:
-
形式引數:在方法被呼叫時用於接收外界輸入的資料
-
實參:呼叫方法時實際傳給方法的資料
-
//比大小
int max=max(20,30);
System.out.println(max);
public static int max(int num1,int num2){
int result=0;
if(num1>num2){
result=num1;
}else{
result=num2;
}
return result;
}
方法的呼叫
-
呼叫方法
-
當方法返回一個值的時候,方法呼叫通常被當做一個值,如
int larger=max(30,40);-
如果方法返回值是void,方法呼叫一定是一條語句,如
System.out.println("Hello ");java是值傳遞
-
2.方法的過載
-
規則
-
方法名稱必須相同
-
引數列表必須不同(個數不同或型別不同或引數排列順序不同等)
-
方法的返回型別可以相同也可以不相同
-
方法名稱相同時,編輯器會根據呼叫方法的引數個數、引數型別等去逐個匹配,以選擇對應的方法,如果匹配失敗,則編譯器報錯
public static int max(int a,int b){}
public static int max(int a,int b,int c){}
public static double max(int a,int b,double c){} -
3.命令列傳遞引數
有時候你希望執行一個程式時候再傳遞給它資訊,這要依靠命令列引數給main()函式實現
如
public class CommandLine{
public static void main(String[]args){
for(int i=0;i<args.length;i++){
System.out.println("arg["+i+"]"+args[i]);
}
}
}
4.可變引數
-
java支援傳遞同類型的可變引數給一個方法
-
在方法宣告中,在指定引數型別後加一個省略號(...)
-
一個方法中只能指定一個可變引數,它必須是方法的最後一個引數,任何普通的引數必須在它之前宣告
Demo1 demo1=new Demo1();
demo1.test(...i:1,2,3);
public void test(int...i){
System.out.println(i[0]);
System.out.println(i[1]);
System.out.println(i[2]);
}//本質是陣列
5.遞迴引數
-
遞迴就是:自己呼叫自己
-
遞迴結構包括:
-
遞迴頭:什麼時候不呼叫自身方法。如果沒有頭,將陷入死迴圈
-
遞迴體:什麼時候需要呼叫自身方法
-
-
遞迴儘量少用,
-
程式碼
//定義階乘方法
public static int f(int n){
if(n==1){
return 1;//當n=1不呼叫自身,即遞迴頭
}else{
return n*f(n:n-1);//當n不等於1時,則需要呼叫自身方法,即遞迴體
}
}
//呼叫
System.out.println(f(n:4));
6.案例
控制檯計數器
-
題目:寫一個計算器,要求實現加減乘除功能,並且能夠迴圈接收新的資料,通過使用者互動實現
package cn.jxau.chapter1;
import java.util.Scanner;
public class ComputerExcerse {
public static void main(String[]args){
while(true){//方法呼叫
Scanner scanner=new Scanner(System.in);
System.out.println("請選擇你要進行的操作:(+、-、*、/)或退出");
String cal=scanner.nextLine();
if(cal.equals("退出")){
System.out.println("已退出計算器");
break;
}else{System.out.println("請輸入你需要計算的兩個整數:");
int num1=scanner.nextInt();
int num2=scanner.nextInt();
switch(cal){
case "+":
int result=add(num1,num2);
System.out.println(num1+"+"+num2+"="+result);
break;
case "-":
int result2=subtraction(num1,num2);
System.out.println(num1+"-"+num2+"="+result2);
break;
case "*":
int result3= multiplication(num1,num2);
System.out.println(num1+"*"+num2+"="+result3);
break;
case "/":