跳轉到內容

面向物件程式設計/獲取器和設定器

來自華夏公益教科書,開放書籍,開放世界

獲取器和設定器(也分別稱為訪問器和修改器方法)是兩種用於控制對類屬性(也稱為屬性或成員變數)的訪問和修改的方法。

獲取器

[編輯 | 編輯原始碼]

獲取器方法用於獲取私有或受保護的類屬性的值。它提供對屬性的只讀訪問,允許程式的其他部分檢索其值,而無需直接訪問該屬性。透過使用獲取器,您可以控制如何訪問屬性,並在返回該值之前應用任何必要的邏輯或驗證。


在大多數程式語言中,獲取器方法的命名約定是在其字首加上“get”,然後是屬性名稱。例如,如果您有一個私有屬性age,則相應的獲取器方法通常命名為getAge()

class Person:

    def __init__(self, name, age):

        self._name = name

        self._age = age

    def getAge(self):

        return self._age

# Usage

person = Person("John Doe", 25)

print(person.getAge())  # Output: 25

設定器

[編輯 | 編輯原始碼]

設定器方法用於修改私有或受保護的類屬性的值。它提供一種更新屬性的方法,同時在進行更改之前強制執行任何必要的約束或驗證規則。透過使用設定器,您可以控制如何修改屬性,並防止任何不當的更改。

在大多數程式語言中,設定器方法的命名約定是在其字首加上“set”,然後是屬性名稱。例如,如果您有一個私有屬性age,則相應的設定器方法通常命名為setAge()

class Person:
    def __init__(self, name, age):
        self._name = name
        self._age = age

    def setAge(self, new_age):
        if new_age >= 0:
            self._age = new_age

# Usage
person = Person("John", 25)
person.setAge(30)
print(person.getAge())  # Output: 30

person.setAge(-5)  # The age will not be updated because of the validation in the setter method
print(person.getAge())  # Output: 30 (age remains unchanged)
華夏公益教科書