Android項(xiàng)目中實(shí)體類entity的作用詳解
估計(jì)很多入門安卓的朋友對(duì)entity很困惑,為什么要寫實(shí)體類?有什么用?寫來(lái)干什么?
對(duì)于實(shí)體類的理解我入門的時(shí)候也是困惑了好久,后面用多了才慢慢理解,這篇博客就當(dāng)復(fù)習(xí)和筆記。
Java中entity(實(shí)體類)的寫法規(guī)范
在日常的Java項(xiàng)目開(kāi)發(fā)中,entity(實(shí)體類)是必不可少的,它們一般都有很多的屬性,并有相應(yīng)的setter和getter方法。entity(實(shí)體類)的作用一般是和數(shù)據(jù)表做映射。所以快速寫出規(guī)范的entity(實(shí)體類)是java開(kāi)發(fā)中一項(xiàng)必不可少的技能。
在項(xiàng)目中寫實(shí)體類一般遵循下面的規(guī)范:
1、根據(jù)你的設(shè)計(jì),定義一組你需要的私有屬性。
2、根據(jù)這些屬性,創(chuàng)建它們的setter和getter方法。(eclipse等IDE可以自動(dòng)生成。具體怎么生成?請(qǐng)自行百度。)
3、提供帶參數(shù)的構(gòu)造器和無(wú)參數(shù)的構(gòu)造器。
4、重寫父類中的eauals()方法和hashcode()方法。(如果需要涉及到兩個(gè)對(duì)象之間的比較,這兩個(gè)功能很重要。)
對(duì)Java實(shí)體類的眾多理解:
A .就是屬性類,通常定義在model層里面
B. 一般的實(shí)體類對(duì)應(yīng)一個(gè)數(shù)據(jù)表,其中的屬性對(duì)應(yīng)數(shù)據(jù)表中的字段。
好處:
1.對(duì)對(duì)象實(shí)體的封裝,體現(xiàn)OO思想。
2.屬性可以對(duì)字段定義和狀態(tài)進(jìn)行判斷和過(guò)濾
3.把相關(guān)信息用一個(gè)實(shí)體類封裝后,我們?cè)诔绦蛑锌梢园褜?shí)體類作為參數(shù)傳遞,更加方便。
C. 說(shuō)白了就是為了讓程序員在對(duì)數(shù)據(jù)庫(kù)操作的時(shí)候不用寫SQL語(yǔ)句
D. 就是一個(gè)數(shù)據(jù)庫(kù)表生成一個(gè)類
這樣做對(duì)數(shù)據(jù)庫(kù)操作起來(lái)方便
編寫代碼較少 提高效率 可以使程序員專注邏輯關(guān)系
E. 實(shí)體類就是把對(duì)某一個(gè)表的操作全寫在一個(gè)類中.
F. 在Java開(kāi)發(fā)中經(jīng)常要定義一些實(shí)體類,這些類的定義的好壞會(huì)直接影響,編寫代碼的質(zhì)量和難易程度,
以下是別人總結(jié)的一些經(jīng)驗(yàn)。
一、實(shí)體類的名字盡量和數(shù)據(jù)庫(kù)的表的名字對(duì)應(yīng)相同。
二、實(shí)體類應(yīng)該實(shí)現(xiàn)java.io.Serializable接口。
三、實(shí)體類應(yīng)該有個(gè)無(wú)參的構(gòu)造方法。
四、實(shí)體類應(yīng)該有個(gè)有參(所有的參數(shù))的構(gòu)造方法。
五、實(shí)體類有屬性和方法,屬性對(duì)應(yīng)數(shù)據(jù)庫(kù)中表的字段,主要有g(shù)etter和setter方法。
六、實(shí)體類還應(yīng)該有個(gè)屬性serialVersionUID。例如:private static final long serialVersionUID = -6125297654796395674L;
七、屬性一般是private類型,方法位public類型,對(duì)于數(shù)據(jù)庫(kù)自動(dòng)生成的ID字段對(duì)應(yīng)的屬性的set方法應(yīng)為private。
G. 實(shí)體類中都是實(shí)例對(duì)象,實(shí)例對(duì)象在jvm的堆區(qū)中開(kāi)辟了一個(gè)該對(duì)象引用空間,并且讓該引用指向某個(gè)實(shí)例,類聲明只是在jvm的棧去中開(kāi)辟了一個(gè)該對(duì)象引用,沒(méi)有讓該引用做任何指向.
例如 :
1.String str;
2.String str = new String (“dgfgg”);
1中的只是一個(gè)引用,說(shuō)明str應(yīng)該指向一個(gè)String 類型的實(shí)例,但還沒(méi)對(duì)str和堆區(qū)的實(shí)例做具體的指向.也就是說(shuō)它還沒(méi)有指向某個(gè)實(shí)例.
而2中的即定義了一個(gè)引用(str)又對(duì)str做了具體的指向,它指向的內(nèi)容就是后面new出來(lái)的String 實(shí)例.
實(shí)體類中的構(gòu)造方法+set方法+get方法:
構(gòu)造函數(shù):初始化成員變量
get,set方法,獲取和改變成員變量的值,JavaBean規(guī)范規(guī)定只使用get/set訪問(wèn)成員變量
構(gòu)造函數(shù):你每次寫一個(gè)Java文件,實(shí)際上都寫了一個(gè)類(創(chuàng)建一個(gè)類,jvm就會(huì)自動(dòng)為這個(gè)類開(kāi)辟一塊內(nèi)存空間)。有了類就需要有類對(duì)象,要產(chǎn)生類對(duì)象就需要構(gòu)造函數(shù)對(duì)這個(gè)剛剛申請(qǐng)的內(nèi)存空間做一點(diǎn)事,賦屬性值之類的工作。當(dāng)然,如果你不寫,它就默認(rèn)有一個(gè)Class(){}的構(gòu)造方法出現(xiàn),當(dāng)然它什么活也不干。
你的屬性是什么樣的?public?private?默認(rèn)?還是protected?這四種你找教材務(wù)必弄懂分清,很有用。如果是private,這種屬性不許別的對(duì)象改和讀,但有時(shí)候需要改/讀,怎么辦?寫一個(gè)public void setAbc(xxx){}和一個(gè)public xxx getAbc(){}就實(shí)現(xiàn)外部讀寫屬性的功能了。
set ,get完全是自我規(guī)定的,就是設(shè)置初值和獲得值的意思.你也可以修改成其他字符.但是用set ,get還是要好些,因?yàn)槟隳芡ㄟ^(guò)單詞理解你寫的代碼的意思,方便閱讀而已。
總結(jié):實(shí)體是就是Java中的O/R Mapping映射,即數(shù)據(jù)庫(kù)中的一個(gè)表映射成對(duì)應(yīng)的一個(gè)Java類,其中還有一個(gè)映射文件。給定一個(gè)較復(fù)雜的實(shí)體關(guān)系(如一對(duì)一,一對(duì)多,多對(duì)多),應(yīng)該熟練地寫出實(shí)體類!!
以上這篇Android項(xiàng)目中實(shí)體類entity的作用詳解就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持好吧啦網(wǎng)。
相關(guān)文章:
