1. 程式人生 > 資訊 >綠米 Aqara 智慧寵物餵食器 C1 發售:369 元,糧食鎖鮮設計 / 不怕斷網斷電

綠米 Aqara 智慧寵物餵食器 C1 發售:369 元,糧食鎖鮮設計 / 不怕斷網斷電

java方法詳解

1.方法的定義和呼叫

方法的定義

  1. 定義:方法是語句的集合,在一起執行一個功能,方法是解決一類問題的步驟的有序組合,方法包含於類或物件中,方法在程式中被建立,在其他地方被引用

  2. 設計方法的原則:方法的本意是功能塊,就是實現某個功能的語句塊的集合,我們設計方法的時候,最好保持方法的原子性,即一個方法只完成一個功能

  3. 方法的命名規則:首字母小寫和駝峰原則

//加法
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 返回值;
}
  1. 返回值型別,有返回值就寫返回值型別,沒有返回值就寫關鍵字void。如果存在返回值,一定要通過return返回

  2. 引數型別:

    • 形式引數:在方法被呼叫時用於接收外界輸入的資料

    • 實參:呼叫方法時實際傳給方法的資料


//比大小
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;
}

方法的呼叫

  1. 呼叫方法

    • 當方法返回一個值的時候,方法呼叫通常被當做一個值,如


    int larger=max(30,40)
    • 如果方法返回值是void,方法呼叫一定是一條語句,如


    System.out.println("Hello ");

    java是值傳遞

2.方法的過載

  1. 規則

    • 方法名稱必須相同

    • 引數列表必須不同(個數不同或型別不同或引數排列順序不同等)

    • 方法的返回型別可以相同也可以不相同

    • 方法名稱相同時,編輯器會根據呼叫方法的引數個數、引數型別等去逐個匹配,以選擇對應的方法,如果匹配失敗,則編譯器報錯


    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.可變引數

  1. java支援傳遞同類型的可變引數給一個方法

  2. 在方法宣告中,在指定引數型別後加一個省略號(...)

  3. 一個方法中只能指定一個可變引數,它必須是方法的最後一個引數,任何普通的引數必須在它之前宣告

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.遞迴引數

  1. 遞迴就是:自己呼叫自己

  2. 遞迴結構包括:

    • 遞迴頭:什麼時候不呼叫自身方法。如果沒有頭,將陷入死迴圈

    • 遞迴體:什麼時候需要呼叫自身方法

  3. 遞迴儘量少用,

  4. 程式碼


//定義階乘方法
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 "/":
float result4=division(num1,num2);
System.out.println(num1+"÷"+num2+"="+result4);
break;







}



}

}

}


//加法
public static int add(int num1,int num2){
return num1+num2;
}
//減法
public static int subtraction(int num1,int num2){
return num1-num2;
}
//乘法
public static int multiplication(int num1,int num2){
return num1*num2;
}
//除法
public static float division(int num1,int num2){
return num1/num2;
}

}
  • 出現錯誤


1.Duplicate local variable result
//在一個main方法裡用了相同名字的區域性變數
修改:將同名的重新命名
2.用while迴圈,迴圈條件為是否true,是判斷能不能繼續迴圈的好方法