Java - 12 方法

wajiez發表於2024-10-06

Java - 12 方法

public class main{
	public static void main(String[] args){
        Person pers = new Person();
        pers.speak();
        pers.cal(100);
        int returnRes = pers.getSum(2, 3);
	}
}

class Person{
    String name;
    int age;
    
    public void speak(){ // public: 方法公開
        System.out.println("I am");
    }
    public void cal(int n){ // 形參
		int res = 0;
        for(int i = 1; i<= n; i++){
			res += i;
        }
        System.out.println(res);
    }
    public int getSum(int num1, int num2){
        int res = num1 + num2;
        return res; // 返回值 int
    }
}

記憶體

  • 當程式執行到方法時就會開闢一個獨立的空間(棧空間),執行完畢後釋放棧空間

  • 當main方法(棧)執行完畢,整個程式退出

方法的用處

  • 提高程式碼複用性

  • 將實現的細節封裝,供其他使用者呼叫

方法使用細節

  1. 一個方法最多隻能有一個返回值(返回多個資料:使用陣列)
public int[] getSumAndSub(int n1, int n2){
	int[] resArr = new int[2];
    resArr[0] = n1 + n2;
    resArr[1] = n1 - n2;
    return resArr;
}
  1. 如果方法是vvoid,沒有return語句,或者只寫return
  2. 方法的呼叫
  • 同一個類直接呼叫
class A{
    public void print(int n){
		System.out.println("Hello, "n);
    }
    publiv void sayOk(){
		print(10); // *
    }
}
  • 跨類的方法呼叫需要透過物件名
class A{
    public void print(int n){
		System.out.println("Hello, "n);
    }
    public void sayOk(){
		print(10);
    }
    // *
    public void useB(){
		B b = new B();
        b.Hi();
    }
}

class B{
	public void Hi(){
		System.out.println("Hello?");
    }
}

方法傳參機制

基本資料型別產地的是值(值複製),形參的任何改變不影響實參

引用型別傳遞的是地址(也是值但值是地址),可以透過形參影響實參

透過hashcode看是否是同一物件

方法的編寫思路

  1. 方法的返回型別
  2. 方法的名字
  3. 方法的形參
  4. 方法體

相關文章