-
下面我談談我的實際工作經驗。
讓我們以乙個類為例。
1. 讀取屬性。
這個類中有幾個變數,有人想訪問這些變數來獲取資料,但這些變數是不允許任意分配的,而且它們是私有的,不能在類外訪問。
2. 寫入屬性。
同樣,在此類中,您希望為類中的變數賦值,但該變數是私有的,並且您不能在類外部賦值,因此您需要使用 write 屬性來執行此操作。
3. 將 read 和 write 屬性都設定為 public,以便可以在類外部訪問它們。
這相當於你去銀行取錢存錢,你不能直接進入金庫自己操作。
銀行的視窗相當於物業,工作人員幫你存取款,存錢就是寫屬性,取款就是讀屬性。
-
從物件導向的角度來討論這個問題稱為封裝字段(如果你還記得物件導向的三個特徵的話)。
如果我可以直接訪問變數年份,我可以輸入像 -1 這樣的年份。
如果要將其限制為 1930-2030,可以在 set 訪問器中執行此操作。
例如,age 字段需要按 birthday 和當前日期計算,因此可以在 get 訪問器中計算它,並且它對使用者是透明的。 此外,集合中的計數也是如此,如果它儲存為特定變數,那麼當集合的元素發生變化時,始終需要修改由 count 維護的變數。 使用屬性,每次訪問計數時,都可以動態計算。
-
唯讀屬性是只獲取訪問器的屬性,通過訪問器可以訪問私有字段,但私有字段不能在外部操作,屬性的值就是私有欄位的值。 方法如下:
2. 即使在類中,也無法為屬性賦值,並且它將顯示為唯讀。
3. 如果將 change 屬性設定為 get and set,它將成為可讀和可寫的屬性。
4.但是這個時候,屬性值也可以從類的外部進行修改,這不是想要的效果。
5.配合訪問修飾符解決問題,將私有屬性新增到集合中。 在這種情況下,寫入只能在內部完成。
6. 訪問修飾符可以應用於 GET 或 SET,但不能同時應用於兩者,因此它完成了。
-
這並不矛盾,檢視屬性:
class person}}
唯讀屬性是只有 get 訪問器才能用於訪問私有欄位的屬性,但不能在外部操作私有字段。 屬性的值是私有欄位的值。 也就是說,只有私有字段可以通過唯讀屬性讀取,私有字段不能寫入,這個功能不能通過簡單地設定字段修飾符而不使用屬性來實現。
當然,也可以通過返回引數來返回私有欄位的值,但執行 get 訪問器比呼叫方法的成本要低。 當從 get 訪問器返回私有變數並啟用優化時,編譯器會內聯對 get 訪問器方法的呼叫,因此方法呼叫不會產生開銷。
-
宣告為屬性其實是一種封裝,在屬性中不是簡單的讀寫,它可以設定為唯讀、只寫、讀寫還可以控制一些邏輯,要理解為什麼,查一下物件導向封裝的知識,你就能突然明白了。
屬性組是一組相互關聯的屬性。
例如,屬性是 ** 中的學生編號和姓名。 事物(實體)具有多個屬性。 學生具有學號、姓名、班級、性別、年齡等屬性。 屬性組是多個屬性的集合。 >>>More