Android項目中實體類entity的作用詳解
估計很多入門安卓的朋友對entity很困惑,為什么要寫實體類?有什么用?寫來干什么?
對于實體類的理解我入門的時候也是困惑了好久,后面用多了才慢慢理解,這篇博客就當(dāng)復(fù)習(xí)和筆記。
Java中entity(實體類)的寫法規(guī)范
在日常的Java項目開發(fā)中,entity(實體類)是必不可少的,它們一般都有很多的屬性,并有相應(yīng)的setter和getter方法。entity(實體類)的作用一般是和數(shù)據(jù)表做映射。所以快速寫出規(guī)范的entity(實體類)是java開發(fā)中一項必不可少的技能。
在項目中寫實體類一般遵循下面的規(guī)范:
1、根據(jù)你的設(shè)計,定義一組你需要的私有屬性。
2、根據(jù)這些屬性,創(chuàng)建它們的setter和getter方法。(eclipse等IDE可以自動生成。具體怎么生成?請自行百度。)
3、提供帶參數(shù)的構(gòu)造器和無參數(shù)的構(gòu)造器。
4、重寫父類中的eauals()方法和hashcode()方法。(如果需要涉及到兩個對象之間的比較,這兩個功能很重要。)
對Java實體類的眾多理解:
A .就是屬性類,通常定義在model層里面
B. 一般的實體類對應(yīng)一個數(shù)據(jù)表,其中的屬性對應(yīng)數(shù)據(jù)表中的字段。
好處:
1.對對象實體的封裝,體現(xiàn)OO思想。
2.屬性可以對字段定義和狀態(tài)進(jìn)行判斷和過濾
3.把相關(guān)信息用一個實體類封裝后,我們在程序中可以把實體類作為參數(shù)傳遞,更加方便。
C. 說白了就是為了讓程序員在對數(shù)據(jù)庫操作的時候不用寫SQL語句
D. 就是一個數(shù)據(jù)庫表生成一個類
這樣做對數(shù)據(jù)庫操作起來方便
編寫代碼較少 提高效率 可以使程序員專注邏輯關(guān)系
E. 實體類就是把對某一個表的操作全寫在一個類中.
F. 在Java開發(fā)中經(jīng)常要定義一些實體類,這些類的定義的好壞會直接影響,編寫代碼的質(zhì)量和難易程度,
以下是別人總結(jié)的一些經(jīng)驗。
一、實體類的名字盡量和數(shù)據(jù)庫的表的名字對應(yīng)相同。
二、實體類應(yīng)該實現(xiàn)java.io.Serializable接口。
三、實體類應(yīng)該有個無參的構(gòu)造方法。
四、實體類應(yīng)該有個有參(所有的參數(shù))的構(gòu)造方法。
五、實體類有屬性和方法,屬性對應(yīng)數(shù)據(jù)庫中表的字段,主要有g(shù)etter和setter方法。
六、實體類還應(yīng)該有個屬性serialVersionUID。例如:private static final long serialVersionUID = -6125297654796395674L;
七、屬性一般是private類型,方法位public類型,對于數(shù)據(jù)庫自動生成的ID字段對應(yīng)的屬性的set方法應(yīng)為private。
G. 實體類中都是實例對象,實例對象在jvm的堆區(qū)中開辟了一個該對象引用空間,并且讓該引用指向某個實例,類聲明只是在jvm的棧去中開辟了一個該對象引用,沒有讓該引用做任何指向.
例如 :
1.String str;
2.String str = new String (“dgfgg”);
1中的只是一個引用,說明str應(yīng)該指向一個String 類型的實例,但還沒對str和堆區(qū)的實例做具體的指向.也就是說它還沒有指向某個實例.
而2中的即定義了一個引用(str)又對str做了具體的指向,它指向的內(nèi)容就是后面new出來的String 實例.
實體類中的構(gòu)造方法+set方法+get方法:
構(gòu)造函數(shù):初始化成員變量
get,set方法,獲取和改變成員變量的值,JavaBean規(guī)范規(guī)定只使用get/set訪問成員變量
構(gòu)造函數(shù):你每次寫一個Java文件,實際上都寫了一個類(創(chuàng)建一個類,jvm就會自動為這個類開辟一塊內(nèi)存空間)。有了類就需要有類對象,要產(chǎn)生類對象就需要構(gòu)造函數(shù)對這個剛剛申請的內(nèi)存空間做一點事,賦屬性值之類的工作。當(dāng)然,如果你不寫,它就默認(rèn)有一個Class(){}的構(gòu)造方法出現(xiàn),當(dāng)然它什么活也不干。
你的屬性是什么樣的?public?private?默認(rèn)?還是protected?這四種你找教材務(wù)必弄懂分清,很有用。如果是private,這種屬性不許別的對象改和讀,但有時候需要改/讀,怎么辦?寫一個public void setAbc(xxx){}和一個public xxx getAbc(){}就實現(xiàn)外部讀寫屬性的功能了。
set ,get完全是自我規(guī)定的,就是設(shè)置初值和獲得值的意思.你也可以修改成其他字符.但是用set ,get還是要好些,因為你能通過單詞理解你寫的代碼的意思,方便閱讀而已。
總結(jié):實體是就是Java中的O/R Mapping映射,即數(shù)據(jù)庫中的一個表映射成對應(yīng)的一個Java類,其中還有一個映射文件。給定一個較復(fù)雜的實體關(guān)系(如一對一,一對多,多對多),應(yīng)該熟練地寫出實體類!!
以上這篇Android項目中實體類entity的作用詳解就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Android基于CountDownView的時間控件擴(kuò)展
這篇文章主要為大家詳細(xì)介紹了Android基于CountDownView的時間控件擴(kuò)展,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-02-02Android實現(xiàn)讀取SD卡下所有TXT文件名并用listView顯示出來的方法
這篇文章主要介紹了Android實現(xiàn)讀取SD卡下所有TXT文件名并用listView顯示出來的方法,涉及Android針對SD卡的讀取及文件遍歷等相關(guān)操作技巧,需要的朋友可以參考下2017-06-06Fragment 多層嵌套方法調(diào)用問題的解決方案
這篇文章主要介紹了Fragment 多層嵌套方法調(diào)用問題的解決方案的相關(guān)資料,需要的朋友可以參考下2016-08-08Android 架構(gòu)之?dāng)?shù)據(jù)庫框架升級
上一篇講解了# Android 架構(gòu)之?dāng)?shù)據(jù)框架搭建 ,里面含有數(shù)據(jù)庫最基礎(chǔ)的增刪改查功能,不過只考慮了單數(shù)據(jù)庫,開發(fā)者可以舉一反三按照對應(yīng)思路設(shè)計多數(shù)據(jù)庫架構(gòu)。 在本篇里,將會講解令開發(fā)者比較頭疼的數(shù)據(jù)庫升級,需要的朋友可以參考下面文章內(nèi)容2021-09-09Android Jetpack架構(gòu)中ViewModel接口暴露的不合理探究
這篇文章主要介紹了Android Jetpack架構(gòu)組件 ViewModel詳解,ViewModel類讓數(shù)據(jù)可在發(fā)生屏幕旋轉(zhuǎn)等配置更改后繼續(xù)存在,ViewModel類旨在以注重生命周期的方式存儲和管理界面相關(guān)的數(shù)據(jù)。感興趣可以來學(xué)習(xí)一下2022-07-07解決Android 6.0獲取wifi Mac地址為02:00:00:00:00:00問題
這篇文章主要介紹了Android 6.0獲取wifi Mac地址為02:00:00:00:00:00的解決方法,非常不錯,具有參考借鑒價值,需要的朋友可以參考下2017-11-11