Android项目中实体类entity的作用

估计很多入门安卓的朋友对entity很困惑,为什么要写实体类?有什么用?写来干什么?
对于实体类的理解我入门的时候也是困惑了好久,后面用多了才慢慢理解,这篇博客就当复习和笔记。

Java中entity(实体类)的写法规范

在日常的Java项目开发中,entity(实体类)是必不可少的,它们一般都有很多的属性,并有相应的setter和getter方法。entity(实体类)的作用一般是和数据表做映射。所以快速写出规范的entity(实体类)是java开发中一项必不可少的技能。

在项目中写实体类一般遵循下面的规范:
  1、根据你的设计,定义一组你需要的私有属性。
  2、根据这些属性,创建它们的setter和getter方法。(eclipse等IDE可以自动生成。具体怎么生成?请自行百度。)
  3、提供带参数的构造器和无参数的构造器。
  4、重写父类中的eauals()方法和hashcode()方法。(如果需要涉及到两个对象之间的比较,这两个功能很重要。)

对Java实体类的众多理解:

A .就是属性类,通常定义在model层里面

B. 一般的实体类对应一个数据表,其中的属性对应数据表中的字段。

  好处:
  1.对对象实体的封装,体现OO思想。
  2.属性可以对字段定义和状态进行判断和过滤
  3.把相关信息用一个实体类封装后,我们在程序中可以把实体类作为参数传递,更加方便。
C. 说白了就是为了让程序员在对数据库操作的时候不用写SQL语句

D. 就是一个数据库表生成一个类
  这样做对数据库操作起来方便
  编写代码较少 提高效率 可以使程序员专注逻辑关系

E. 实体类就是把对某一个表的操作全写在一个类中.

F. 在Java开发中经常要定义一些实体类,这些类的定义的好坏会直接影响,编写代码的质量和难易程度,以  下是别人总结的一些经验。
  一、实体类的名字尽量和数据库的表的名字对应相同。

  二、实体类应该实现java.io.Serializable接口。

  三、实体类应该有个无参的构造方法。

  四、实体类应该有个有参(所有的参数)的构造方法。

  五、实体类有属性和方法,属性对应数据库中表的字段,主要有getter和setter方法。

  六、实体类还应该有个属性serialVersionUID。例如:private static final long serialVersionUID = -6125297654796395674L;

  七、属性一般是private类型,方法位public类型,对于数据库自动生成的ID字段对应的属性的set方法应为private。

G. 实体类中都是实例对象,实例对象在jvm的堆区中开辟了一个该对象引用空间,并且让该引用指向某个实例,类声明只是在jvm的栈去中开辟了一个该对象引用,没有让该引用做任何指向.
  例如 :
  1.String str;
  2.String str = new String (“dgfgg”);
  1中的只是一个引用,说明str应该指向一个String 类型的实例,但还没对str和堆区的实例做具体的指向.也就是说它还没有指向某个实例.
  而2中的即定义了一个引用(str)又对str做了具体的指向,它指向的内容就是后面new出来的String 实例.

实体类中的构造方法+set方法+get方法:
构造函数:初始化成员变量

get,set方法,获取和改变成员变量的值,JavaBean规范规定只使用get/set访问成员变量

构造函数:你每次写一个Java文件,实际上都写了一个类(创建一个类,jvm就会自动为这个类开辟一块内存空间)。有了类就需要有类对象,要产生类对象就需要构造函数对这个刚刚申请的内存空间做一点事,赋属性值之类的工作。当然,如果你不写,它就默认有一个Class(){}的构造方法出现,当然它什么活也不干。

你的属性是什么样的?public?private?默认?还是protected?这四种你找教材务必弄懂分清,很有用。如果是private,这种属性不许别的对象改和读,但有时候需要改/读,怎么办?写一个public void setAbc(xxx){}和一个public xxx getAbc(){}就实现外部读写属性的功能了。

set ,get完全是自我规定的,就是设置初值和获得值的意思.你也可以修改成其他字符.但是用set ,get还是要好些,因为你能通过单词理解你写的代码的意思,方便阅读而已。

总结:实体是就是Java中的O/R Mapping映射,即数据库中的一个表映射成对应的一个Java类,其中还有一个映射文件。给定一个较复杂的实体关系(如一对一,一对多,多对多),应该熟练地写出实体类!!

相关推荐
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页