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