在Java中,函數是一種重要的程序結構,通過定義函數,可以實現代碼的模塊化。在函數的定義過程中,涉及到參數傳遞和返回值的問題。
參數傳遞中最基本的有兩種方式:值傳遞和引用傳遞。
public void valueTransfer(int a){ a = 5; } public void referenceTransfer(int[] arr){ arr[0] = 5; } public static void main(String[] args){ int num = 1; valueTransfer(num); // 值傳遞 System.out.println(num); // 輸出1,沒有改變原值 int[] array = {1, 2, 3}; referenceTransfer(array); // 引用傳遞 System.out.println(array[0]); // 輸出5,原值被修改 }
通過函數傳遞參數,可以將外部數據傳遞到函數中進行計算,計算結果再返回給調用方。
public int add(int a, int b){ return a + b; } public static void main(String[] args){ int m = 1, n = 2; int sum = add(m, n); // 返回值為3 System.out.println(sum); }
在Java中,如果函數沒有返回值,可以使用void關鍵字。
public void print(int num){ System.out.println(num); } public static void main(String[] args){ print(10); // 輸出10 }
除了使用基本數據類型作為函數參數和返回值外,Java還支持使用自定義類型作為函數參數和返回值。使用這種方式,可以將一些相關的數據封裝成一個對象,方便傳遞和維護。
public class Student { private String name; private int age; // 構造方法和setter、getter省略 public void sayHello(){ System.out.println("Hello, my name is " + name + ", I am " + age + " years old."); } } public void test(Student stu){ stu.sayHello(); } public Student createStudent(String name, int age){ return new Student(name, age); } public static void main(String[] args){ Student stu = createStudent("張三", 18); test(stu); // 輸出"Hello, my name is 張三, I am 18 years old." }