Fields, Attributes, Properties 在各種語言中的區別

  • 來源:http://www.wwwcoder.com/
  • 作者:Venkatarama Uppugunduri

這些至少在程序員的世界中是一種容易被混淆的術語。它們的含意經常會被交換。

這裏是我對於它們的看法。

Attributes(特性)討論的是主題的天性。而 Properties(屬性)則討論的是主題的所有物中的財產、內容,狀態或者所有權。

打個比方說我是人類,在這個前提下人類就是以我爲主題時的一個 Attribute(特性)。而象在我的公寓中既有人也有狗一樣,在這裏的人就是以公寓爲主題時的 Properties(屬性)。

相同的事物出現在 .NET 的世界中。例如:Serializable 就是一個實例對象的 Attribute(特性),並且那個對象可能擁有一個使用所期望的 true 或 false 布爾值的屬性來表示其能夠被序列化。這會告訴 .NET 運行時:這個類是能夠通過 Attribute(特性)來表示序列化能力的,並且又無需使用通過它所暴露的 Property(屬性)就能夠完全表示這個類是可序列化能力。

因此 Attribute(特性)爲主題定義了特有的性質或天性,而 Property(屬性)則是屬於這個主題的。在面向對象範例的術語中,與主題相關的 Attribute(特性)的含意應該是:“是什麼”,而 Property(屬性)的含意則應該是:“有什麼”。

範例
  • 人是人類。這裏的人類就是一個 Attribute(特性)。
  • 人有翅膀。這裏的翅膀就是 Properties(屬性)。

那麼 Field(字段) 和 Property(屬性)呢?多數時候我們都會聽說:Fields(字段)和 Properties(屬性)在有時候聽起來是相似的,而在有時候它們聽起來又是不同的。而實際上,Fields(字段)定義了在存儲值或者主題的狀態時所必需的區域,而 Properties(屬性)則除了對狀態或值的呈現之外,其他的什麼也沒有。

發佈了137 篇原創文章 · 獲贊 8 · 訪問量 20萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章