GET與SET用法詳解

2021-05-22 13:55:22 字數 1290 閱讀 3002

get是讀取屬性時進行的操作,set是設定屬性時進行的操作。定義乙個屬性如果只有get,這個屬性就是唯讀的。同樣,只有set,屬性就是只寫的,當然只寫的屬性是沒有任務意義的。假設類是乙個銀行,既能存錢也能取錢.

private   m_money;

private   class   bank()  

set             

}m_money   就像銀行裡的自動訪問款機,你看不見裡面的money,但你能用set(存錢),用get(取錢)。m_money是乙個私有字段,是分裝在類中的,類以外的程式不能直接訪問的,類的set   和get成員是外部程式訪問類內部屬性的唯一方法,就像你去銀行取錢,你不能直接從銀行的保險櫃裡拿到錢,而是銀行營業人員把錢取出來給你的.

屬性在呼叫者看來就像乙個普通的變數,普通變數怎麼用,它就怎麼用,但作為類的設計者,你可以利用屬性來隱藏你類中的一些字段,使外界只能通過屬性來訪問你的字段,你可以通過屬性來限制外界對你的字段的訪問,就利用get,set,如果你想讓使用者隨意訪問你的字段,那麼就實現set和get,如果只想讓使用者讀取字段,就只實現get,若只想讓使用者寫字段就只實現set,同時你還可以在set和get中對使用者傳遞來的值進行一些驗證工作,以確保你的字段將含有正確的值。

比如   private   int   a;

public   int   index

set}

可以看出,get/set有一種函式的特徵。get   set

一則是隱藏元件或類內部的真實成員,

二是用來建立約束的,比如,實現「有我沒你」這種約束。

三是用來響應屬性變化事件,當屬性變化時做某事,只要寫在set   方法裡就行了。

house類有乙個命名為squarefeet的屬性,它可以被讀和寫。實際的值儲存在乙個可以從類內部訪問的變數中——如果你想當作乙個域成員重寫它,你所要做的就是忽略訪問標誌而把變數重新定義為:

public   int   squarefeet;

對於乙個如此簡單的變數,這樣不錯。但是,如果你想要隱藏類內部儲存結構的細節時,就應該採用訪問標誌。在這種情況下,set   訪問標誌給值引數中的屬性傳遞新值。(可以改名,見第10行。)

除了能夠隱藏實現細節外,你還可自由地限定各種操作:

get和set:允許對屬性進行讀寫訪問。

get   only:只允許讀屬性的值。

set   only:只允許寫屬性的值。

除此之外,你可以獲得實現在set標誌中有效**的機會。例如,由於種種原因(或根本沒有原因),你就能夠拒絕乙個新值。最好是沒有人告訴你它是乙個動態屬性——當你第一次請求它後,它會儲存下來,故要盡可能地推遲資源分配。

c 中get與set的用法詳解

在程式中經常碰到get set,不甚明白,在網上查詢時也說的迷迷糊糊,所以整理下,以學的明白透徹點。有兩個類person public class person public class person 第乙個型別的name屬性未封裝,其name屬性直接通過public關鍵字暴露給系統中的其他類了,而...

GET與SET用法指南

get是讀取屬性時進行的操作,set是設定屬性時進行的操作。定義乙個屬性如果只有get,這個屬性就是唯讀的。同樣,只有set,屬性就是只寫的,當然只寫的屬性是沒有任務意義的。假設類是乙個銀行,既能存錢也能取錢.private m money private class bank set m mone...

GET與SET用法指南

get是讀取屬性時進行的操作,set是設定屬性時進行的操作。定義乙個屬性如果只有get,這個屬性就是唯讀的。同樣,只有set,屬性就是只寫的,當然只寫的屬性是沒有任務意義的。假設類是乙個銀行,既能存錢也能取錢.1private m money 2private class bank 35 set 6...