首頁  >  文章  >  Java  >  java字段是什麼

java字段是什麼

(*-*)浩
(*-*)浩原創
2019-05-31 11:13:346472瀏覽

Java中的屬性和欄位有什麼差別? 

Java中的屬性(property),通常可以理解為get和set方法。

而欄位(field),通常叫做“類別成員”,或 "類別成員變數”,有時也叫“域”,理解為“資料成員”,用來承載資料的。

java字段是什麼

欄位(field)

#類別成員(欄位),通常是在類別中定義的類別成員變數,

例如:

public class A{
    private String s = "123";
}

我們可以說A類別中有一個成員變數叫做s,A類別有一個欄位s 。

欄位一般用來承載數據,所以為了安全性,一般定義為私有的。

欄位和常數描述了類別的資料(域),當這些資料的某些部分不允許外界存取時,

根據「物件封裝」 的原則,應盡量避免將一個類型的欄位以公有方式提供給外部。除了final修飾的常數。

一般將其設定為private類型。既然是私有,那外界要怎麼存取呢? 當然是透過Java的屬性方法!

屬性(property)

屬性只限於類別中方法的聲明,不與類別中其他成員相關,屬於JavaBean的範疇。

例如:

void setA(String s){}
String getA(){}

當一個類別中擁有這樣一對方法時,我們可以說,這個類別中擁有一個可讀寫的a屬性(注意是小寫a)。如果去掉了set的方法,則是可讀屬性,反之亦然。

其規則是:去掉get或set後其剩餘的字串

總結:

區別開屬性與欄位是為了更好的實現資料安全,例如當我們想給一個類別的屬性賦值或其他類別到了,就需要將這個欄位設為public,然而這樣可以對欄位進行任意的讀寫操作,非常不利於資料安全。於是就加上了屬性,簡單說屬性實作了字段的封裝,屬性有get、set 方法來控製字段,該字段的屬性只有set方法沒有get方法,就只可以對該方法進行賦值操作,沒有讀取操作,反之亦然。就是對對字段的操作透過屬性來控制。

可以建立屬性,將欄位和屬性封裝在一起。透過屬性可以像存取欄位一樣存取資料成員,實現資料的封裝,避免使用非法資料賦值,確保資料完整性,同時類別內部發生修改時,避免整個程式的修改。

基於get,set方法的反射不會破壞物件數據,IDE可以透過約定做些智慧提示。如果你自己用反射,你想做些通用處理,去遍歷每個字段,沒人跟你說哪個字段能寫,那個能讀,你沒辦法處理嘛。

以上是java字段是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn