发表于: 2019-10-20 16:39:17

1 997


今天做的事


理解各个类的作用和用法


实体类

实体类是在JAVA软件开发中广泛使用的概

首先,直观的看

      实体类就是一个拥有Set和Get方法的类。实体类通常总是和数据库之类的(所谓持久层数据)联系在一起。这种联系是借由框架(如Hibernate)来建立的。

其次说定义(比较生涩难懂):

      实体类主要是作为数据管理和业务逻辑处理层面上存在的类别; 它们主要在分析阶段区分 实体类的主要职责是存储和管理系统内部的信息,它也可以有行为,甚至很复杂的行为,但这些行为必须与它所代表的实体对象密切相关。

      这段话看起来不太好懂,应该结合实体类的作用来看:

实体类的作用(需要面向对象的一点很基本的知识):

      实体类就是一个载体。

      现在的设计差不多都是一张表就等于业务里面的一个类。一条记录(一般一行数据)是一个对象,一行中的一列就是这个对象的一个属性。

      所以我们在操作某个表时(比如更改这个表的信息),我们就可以在前台定义一个这样的对象,然后将其对应的属性赋值,然后传到后台。

      这样后台就可以拿到这个对象的所有值了——不用一个一个属性当参数传过来,只要传一个这个类的对象就好了,也就是说只要一个参数就好了。好处不言而喻。

      而这种前台对象到后台数据库的联系,我们是借由框架、配置文件来配置实现的,很方便快捷。并不需要自己手动编程实现。

简而言之,(大多数情况下)实体类就是数据库在Java代码中对应的东西


工具类


工具类其实就是对于String,Collection,IO等常用类的功能的扩展。比如IO读写文件。其实大多数时候我希望有一个文件路径,然后调个方法就直接得到文件内容(字符串或者字节数组形式)。

如果没有工具类,那么你每个读文件的地方都有一段重复的代码。所以,你肯定会被这个功能提取出来。那么,你提取出来放哪儿呀?要知道这个功能可是在任何类都能调用的。所以,我们就放在FileUtil里面了。

这样,你以后读取文件时,你就找FileUtil的read方法,直接调用即可。

为什么要将方法和变量都写成静态的。因为,这些方法我只是想调用一下,不需要牵扯工具类中的任何属性和变量,所以,我就没有必要实例化了(new)。既然不需要实例化了,那么就用静态就行了


实现类

一个抽象类中的所有方法都是抽象的,就可以将这个类用另外一种方式来定义,也就是接口定义。
接口是抽象方法和常量值的定义的集合,从本质上讲,接口是一种特殊的抽象类,这种抽象类中只包含常量和方法的定义,而没有变量和方法的实现
可以使用extends来继承接口的常量和抽象方法,但它与类中的extends不同,它可以继承有多个父接口(多重继承),各父接口间用逗号隔开。
接口中的所有常量必须是public static final,方法必须是public abstract,这是系统默认的,不管你在定义接口时,写不写修饰符都是一样的
定义接口
修饰符 interface 接口名 [extends 父接口列表]
{
常量域声明
抽象方法声明
}
class cat implements Animal
{
public void shout ()
{


测试类

JAVA中的测试类是用来是用来对已经写好的功能组件进行测试的。

可以有两种方法进行测试:
第一种:另外新建一个带有main方法的类,利用该类来调用需要测试的类,把需要测试的数据传入进去即可。比如:
需要测试的类是ScoreQuery(String stuNum, String subject);
public class TestCase{
public static void main(String[] args) {
ScoreQuery scoreQuery= new ScoreQuery("Tom", "150110101");
Map map = new HashMap();
map = scoreQuery.query();
System.out.println(map);
}
}
可以利用上面的方法对ScoreQuery(String stuNum, String subject)进行功能测试
这种方法的好处就是比较简单,容易实现;但是弊端也很明显,不能进行功能重用,而且每次都要重复很多无用的代码。
第二种方法就是创建测试的功能组件,每次实现该功能组件对其他组件进行测试。
public class SimpleTestCase(){
Object object;
public staitc void prepare(){
Map map = new HashMap();
map.put("", "");
......
BeanUtils.map2Bean(map, object);
}
}
以后的测试类只需继承上面的测试类即可。


收获

问题




返回列表 返回列表
评论

    分享到