在Java中,函數通常被稱為方法(method)。方法包含方法名稱、參數列表和方法體。
public class FunctionExample {
// 函數聲明
public static void sayHello() {
System.out.println("Hello, World!");
}
public static void main(String[] args) {
// 函數的呼叫
sayHello();
}
}
Java 8引入了Lambda表達式,可以用來簡化函數的定義。Lambda表達式通常用於函數接口(Functional Interface)的實現。
public class FunctionExpressionExample {
public static void main(String[] args) {
// 使用Lambda表達式定義函數
Runnable runnable = () -> {
System.out.println("Hello, Lambda!");
};
// 呼叫run方法,執行Lambda表達式
runnable.run();
}
}
Java 11引入了箭頭函數,這是對Lambda表達式的進一步簡化,特別是用於只有一個表達式的函數。
public class ArrowFunctionExample {
public static void main(String[] args) {
// 箭頭函數示例
Runnable runnable = () -> System.out.println("Hello, Arrow Function!");
// 呼叫run方法,執行箭頭函數
runnable.run();
}
}
匿名函數是沒有名稱的函數,通常用於定義事件處理程序或簡短的功能。
public class AnonymousFunctionExample {
public static void main(String[] args) {
// 匿名函數示例
Runnable runnable = new Runnable() {
@Override
public void run() {
System.out.println("Hello, Anonymous Function!");
}
};
// 呼叫run方法,執行匿名函數
runnable.run();
}
}
函數的呼叫通過其名稱後跟括號完成,可以根據需要向函數傳遞參數。
public class FunctionCallExample {
public static void printMessage(String message) {
System.out.println(message);
}
public static void main(String[] args) {
// 呼叫函數並傳遞參數
printMessage("Hello, Function Call!");
}
}
public class SingleParameterExample {
public static void greetPerson(String name) {
System.out.println("Hello, " + name + "!");
}
public static void main(String[] args) {
// 傳遞單個參數給函數
greetPerson("Alice");
}
}
public class MultipleParametersExample {
public static void printSum(int a, int b) {
System.out.println("Sum: " + (a + b));
}
public static void main(String[] args) {
// 傳遞多個參數給函數
printSum(5, 3);
}
}
Java中沒有預設參數值的概念,但可以使用方法重載來達到類似的效果。
Java中的剩餘參數(Varargs)允許方法接受可變數量的參數。
public class VarargsExample {
public static void printNumbers(String... numbers) {
for (String number : numbers) {
System.out.println(number);
}
}
public static void main(String[] args) {
// 傳遞不定數量的參數給函數
printNumbers("1", "2", "3");
printNumbers("4", "5");
}
}
public class SingleReturnValueExample {
public static int addNumbers(int a, int b) {
return a + b;
}
public static void main(String[] args) {
// 返回單個值的函數
int result = addNumbers(3, 4);
System.out.println("Sum: " + result);
}
}
public class ObjectReturnValueExample {
public static Person createPerson(String name, int age) {
return new Person(name, age);
}
public static void main(String[] args) {
// 返回物件的函數
Person person = createPerson("Alice", 30);
System.out.println("Person: " + person.getName() + ", " + person.getAge());
}
}
class Person {
private String name;
private int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public int getAge() {
return age;
}
}
在Java中,函數也可以作為另一個函數的返回值返回。
public class FunctionAsReturnValueExample {
public static Runnable getRunnable() {
return () -> System.out.println("Hello, Function as Return Value!");
}
public static void main(String[] args) {
// 返回函數的函數
Runnable runnable = getRunnable();
runnable.run();
}
}