|
連續(xù)兩天被問到這個問題,發(fā)現(xiàn)初學者從wrox的入門經(jīng)典紅寶書中很難找到正確的答案。
通過這兩天的回答我總結(jié)出一個通過講解和例子來從初學者的眼光出發(fā)解釋的方法。 (以C#語言下字符串類型為例) 在這里就不多說字段變量了,簡單提一句,字段變量就是對象公布出來和外界交互數(shù)據(jù)的變量。 屬性是對一個或多個變量的包裝,在Java環(huán)境中,屬性是通過從對象中暴露出來的Set方法和Get來實現(xiàn)的: ![]() public boolean SetPublicString(string val) {this.mPublicString = val;}![]() ![]() public string GetPublicString() {return this.mPublicString;}而在DotNet當中,總結(jié)了以上的Set和Get方法,直接將其定義成了一個暴露屬性,通過對這個屬性的訪問方式不同(取值還是賦值)而采用不同的代碼如以下所示的get代碼段和set代碼段 變量的定義 public string mPublicString;![]() public string PublicString {![]() get {return this.mPublicString;}![]() set {this.mPublicString = value;} }因為可以做到使用不同的代碼段,所以在訪問的時候可以使用更多的邏輯控制來取到或限制需要的值: ![]() public string PublicString {![]() get {![]() if(this.mPublicString.Length>10) { return this.mPublicString; }![]() else { return ""; } }![]() set { this.mPublicString = value; } }綜上就把字段變量mPublicString包裝了起來,并不是直接的面向?qū)ο蟮氖褂谜?,達到控制的目的。 屬性的方法中還能寫各種復雜的邏輯,因為屬性中set或get的代碼塊等同于SetPublicString和GetPublicString的方法。 希望以上的內(nèi)容能對你有所幫助,希望能知道你對于這個問題更精確,更簡單明了的解釋方法。 |
|
|