以下是您提供的英文文本翻译成繁體中文的內容:

Java 12 - New Features

# Java 12 - 新功能

你好,未來的 Java 開發者們!我很興奮能成為你們在 Java 12 世界的引路人。作為一個教學多年的程序設計老師,我可以確保你們,Java 是一門非常出色的起步語言,而版本 12 帶來了一些很酷的新功能。那麼,讓我們一起深入探討這些新增功能吧!

## Java 控制語句

在我們深入了解新功能之前,讓我們快速複習一些 Java 的基本控制語句。這些是任何程序的基石,理解它們對於精通 Java 至關重要。

### If-Else 語句

if-else 語句就像程序中的一個分叉路口。它允許你的代碼根據某些條件做出決策。

```java
int age = 18;
if (age >= 18) {
    System.out.println("你可以投票!");
} else {
    System.out.println("對不起,你還太小,無法投票。");
}

在這個例子中,程序檢查 age 是否為 18 歲或以上。如果是,它會打印 "你可以投票!"。否則,它會打印 "太小" 的信息。

For 迴圈

for 迴圈就像一個忠實的工人,重複特定次數的任務。

for (int i = 1; i <= 5; i++) {
    System.out.println("計數: " + i);
}

這個迴圈會從 1 計數到 5,打印每個數字。就像有一個小助手為你計數!

面向對象程式設計

現在,讓我們來谈谈 Java 的一個超能力:面向對象程式設計(OOP)。在 Java 中,一切都是對象(好吧,差不多都是)。

類別與對象

把一個類別看作是創建對象的藍圖。讓我們創建一個簡單的 Dog 類別:

public class Dog {
    String name;
    int age;

    public void bark() {
        System.out.println("汪!汪!");
    }
}

現在,我們可以創建 Dog 對象:

Dog myDog = new Dog();
myDog.name = "Buddy";
myDog.age = 3;
myDog.bark();  // 這會打印 "汪!汪!"

這不是很酷嗎?我們剛剛創建了一個會叫的虛擬狗!

Java 內建類別

Java 提供了很多內建類別,讓我們的生活變得更容易。讓我們看看其中最常見的一個:String 類別。

String greeting = "Hello, World!";
System.out.println(greeting.length());  // 打印 13
System.out.println(greeting.toUpperCase());  // 打印 "HELLO, WORLD!"

String 類別有很多有用的方法,如 length() 來獲取字符串的長度,以及 toUpperCase() 來將其轉換為大寫。

Java 12 的新功能

現在,讓我們探索一些 Java 12 中引入的令人興奮的新功能!

Switch 表達式(預覽功能)

Java 12 引入了一個 switch 表達式的預覽,這使得 switch 語句更強大和簡潔。

String day = "MONDAY";
String result = switch (day) {
    case "MONDAY", "FRIDAY", "SUNDAY" -> "放鬆";
    case "TUESDAY" -> "努力工作";
    case "THURSDAY", "SATURDAY" -> "運動";
    case "WEDNESDAY" -> "去購物";
    default -> "未知的一天";
};
System.out.println(result);

這種新語法允許我們使用箭頭(->)而不是冒號和 break 語句,使代碼更清晰、更不易出錯。

String 類別增强

Java 12 為 String 類別添加了一些新方法。其中之一是 indent(),它允許你為字符串中的每行添加或刪除縮進。

String text = "Hello\nWorld";
System.out.println(text.indent(4));

這將打印:

    Hello
    World

每行都縮進了 4 個空格。很棒吧?

Collectors.teeing()

Java 12 引入了一個新的收集器叫做 teeing()。它就像有兩個獨立的收集器,然後將它們的結果組合起來。

import java.util.stream.Collectors;

double mean = List.of(1, 2, 3, 4, 5)
    .stream()
    .collect(Collectors.teeing(
        Collectors.summingDouble(i -> i),
        Collectors.counting(),
        (sum, count) -> sum / count));

System.out.println("平均: " + mean);  // 打印 "平均: 3.0"

這段代碼使用新的 teeing() 收集器計算一串數字的平均值。這有點進階,但它展示了 Java 的 stream API 有多強大!

結論

我們只是擦傷了 Java 12 新功能的表面,但我希望這能讓你們對可能性有所了解。記住,學習編程就像學習一門新語言 - 它需要時間和練習,但卻非常有益。

當我們結束時,我會想起一個學生曾經告訴我:"Java 就像瑞士軍刀 - 它有一個應對各種工作的工具!" 而你知道嗎?他完全說得對。隨著每個新版本,Java 都為這把刀添加了更多工具,使其更加多功能和強大。

持續編程,持續學習,最重要的是,玩得開心!Java 的世界浩瀚而令人興奮,而你才剛剛開始你的旅程。誰知道呢?也許你會成為創造 Java 13 下一個重大功能的那个 人!

Credits: Image by storyset