iT邦幫忙

2024 iThome 鐵人賽

DAY 25
0

在 Java 中,可變語法是指允許對象的狀態在其生命週期內可以被修改的編程風格。與不可變語法相對,可變的對象允許通過 setter 方法或直接操作屬性來改變對象的屬性值。

可變語法的特點:

  1. 屬性可以修改

    • 允許對象的屬性在創建之後通過方法或其他操作來進行更改。
  2. Setter 方法

    • 可變的類通常提供 setter 方法來更改對象的屬性值。
  3. 可修改的集合類型

    • 可變對象通常會包含可修改的集合(如 ArrayListHashMap 等),可以隨時向其中添加或刪除元素。

可變語法的優缺點:

  • 優點

    • 靈活性高,適合需要頻繁修改狀態的應用。
    • 更加方便處理需要動態更新或管理狀態變化的情況。
  • 缺點

    • 可能會導致意外的狀態更改,特別是在多執行緒環境中,這可能會導致競態條件或其他併發問題。
    • 難以進行防範和追蹤對象的狀態變化,增加了程式的錯誤風險。

範例程式碼:可變對象

public class MutablePerson {
    // 定義屬性
    private String name;
    private int age;

    // 建構子
    public MutablePerson(String name, int age) {
        this.name = name;
        this.age = age;
    }

    // Getter 方法
    public String getName() {
        return name;
    }

    public int getAge() {
        return age;
    }

    // Setter 方法,用於修改屬性
    public void setName(String name) {
        this.name = name;
    }

    public void setAge(int age) {
        this.age = age;
    }

    // 方法:顯示個人資訊
    public void showInfo() {
        System.out.println("Name: " + name);
        System.out.println("Age: " + age);
    }

    public static void main(String[] args) {
        // 創建一個可變的 MutablePerson 物件
        MutablePerson joe = new MutablePerson("Joe", 30);

        // 顯示 Joe 的資訊
        joe.showInfo();

        // 修改屬性
        joe.setName("Joseph");
        joe.setAge(31);

        // 再次顯示更新後的資訊
        joe.showInfo();
    }
}

程式碼說明:

  1. MutablePerson 類別

    • 這個類別允許對象的屬性在創建之後被修改。
    • 提供了 getter 和 setter 方法來分別獲取和設置對象的屬性。
  2. Setter 方法

    • setName()setAge() 方法允許外部修改 nameage 屬性。
  3. 主程式

    • 創建一個可變的 MutablePerson 物件 Joe,並顯示其初始資訊。
    • 使用 setter 方法修改屬性後,再次顯示更新後的資訊。

執行結果:

Name: Joe
Age: 30
Name: Joseph
Age: 31

在這個範例中,Joe 的名字和年齡可以隨時被修改,這展示了可變語法的靈活性。在實際應用中,根據需求的不同,開發者需要權衡使用可變對象還是不可變對象的利弊。


上一篇
DAY24Joe——Java撰寫職業範例
下一篇
DAY26 🔴🟨〰️如何使用Java繪畫簡易圖形
系列文
從0開始—初階程式語言學習者的必經之路30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言