十年網(wǎng)站開發(fā)經(jīng)驗 + 多家企業(yè)客戶 + 靠譜的建站團(tuán)隊
量身定制 + 運(yùn)營維護(hù)+專業(yè)推廣+無憂售后,網(wǎng)站問題一站解決
小編給大家分享一下java字段指的是什么,希望大家閱讀完這篇文章后大所收獲,下面讓我們一起去探討吧!
Java中的屬性和字段有什么區(qū)別?
Java中的屬性(property),通常可以理解為get和set方法。
而字段(field),通常叫做“類成員”,或 "類成員變量”,有時也叫“域”,理解為“數(shù)據(jù)成員”,用來承載數(shù)據(jù)的。
字段(field)
類成員(字段),通常是在類中定義的類成員變量,
例如:
public class A{ private String s = "123"; }
我們可以說A類中有一個成員變量叫做s,A類有一個字段s 。
字段一般用來承載數(shù)據(jù),所以為了安全性,一般定義為私有的。
字段和常量描述了類的數(shù)據(jù)(域),當(dāng)這些數(shù)據(jù)的某些部分不允許外界訪問時,
根據(jù) “對象封裝” 的原則,應(yīng)盡量避免將一個類型的字段以公有方式提供給外部。除了final修飾的常量。
一般將其設(shè)置為private類型。既然是私有,那外界怎么訪問呢? 當(dāng)然是通過Java的屬性方法!
屬性(property)
屬性只局限于類中方法的聲明,并不與類中其他成員相關(guān),屬于JavaBean的范疇。
例如:
void setA(String s){} String getA(){}
當(dāng)一個類中擁有這樣一對方法時,我們可以說,這個類中擁有一個可讀寫的a屬性(注意是小寫a)。如果去掉了set的方法,則是可讀屬性,反之亦然。
其規(guī)則是:去掉get或set后其剩余的字符串
總結(jié):
區(qū)別開屬性與字段是為了更好的實現(xiàn)數(shù)據(jù)安全,比如當(dāng)我們想給一個類的屬性賦值或者其他類用到了,就需要將這個字段設(shè)置為public,然而這樣可以對字段進(jìn)行任意的讀寫操作,非常不利于數(shù)據(jù)安全。于是就加上了屬性,簡單說屬性實現(xiàn)了字段的封裝,屬性有g(shù)et、set 方法來控制字段,該字段的屬性只有set方法沒有g(shù)et方法,就只可以對該方法進(jìn)行賦值操作,沒有讀操作,反之亦然。就是對對字段的操作通過屬性來控制。
可以創(chuàng)建屬性,將字段和屬性封裝在一起。通過屬性可以像訪問字段一樣訪問數(shù)據(jù)成員,實現(xiàn)數(shù)據(jù)的封裝,避免使用非法數(shù)據(jù)賦值,保證數(shù)據(jù)完整性,同時類內(nèi)部發(fā)生修改時,避免整個程序的修改。
基于get,set方法的反射不會破壞對象數(shù)據(jù),IDE可以通過約定做些智能提示。如果你自己用反射,你想做些通用處理,去遍歷每個字段,沒人跟你說哪個字段能寫,那個能讀,你沒法處理嘛。
看完了這篇文章,相信你對java字段指的是什么有了一定的了解,想了解更多相關(guān)知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!