char和varchar的区别:
char的长度是不可变的,而varchar的长度是可变的,char在速率上更优,varchar在空间上更优。即char用空间换速度,varchar用速度换空间。
两者的存储数据都非unicode的字符数据。
一般用 char 类型的 存放 固定的数据 如 身份证号(18) 电话号 性别
用varchar 存放可变的数据
类与类之间的关系:
泛化(继承)、实现、关联、聚合、组合、依赖
1. 泛化:即继承关系,子类与父类之间的特征关系
2.实现:是一种类与接口的关系, 类是接口所有特征和行为的实现-->
3.关联:是一种拥有的关系, 它使一个类知道另一个类的属性和方法;如:老师与学生,丈夫与妻子关联可以是双向的,也可以是单向的。双向的关联可以有两个箭头或者没有箭头,单向的关联有一个箭头
4.聚合:是整体与部分的关系, 且部分可以离开整体而单独存在,聚合关系是关联关系的一种,是强的关联关系;关联和聚合在语法上无法区分,必须考察具体的逻辑关系
5.组合:是整体与部分的关系, 但部分不能离开整体而单独存在,比聚合关系还要强的关系,它要求普通的聚合关系中代表整体的对象负责代表部分的对象的生命周期
6.依赖:是一种使用的关系, 即一个类的实现需要另一个类的协助, 尽量不使用双向的互相依赖
各种关系的强弱顺序:
泛化 = 实现 > 组合 > 聚合 > 关联 > 依赖
接口体现的思想就是声明规则
思路:如果一个类,所有的组成,都是抽象方法,没有成员变量,没有普通方法
这种类,我们通常会设计成为Java中的接口,因为这个类存在的唯一价值,就只是声明规则
接口不允许实例化:即不允许创建对象
接口和类之间的各种关系:
1. 类和类之间:继承关系,只支持单继承,不支持多继承,但是可以多层继承
2. 类和接口之间:实现关系,可以单实现,也可以多实现,甚至可以在继承一个类的同时,实现多个接口
抽象类和接口的区别:
抽象类 | 接口 | |
成员变量 | 可以定义变量,也可以定义常量 | 只能定义常量 |
成员方法 | 可以定义具体方法,也可以定义抽象方法 | 只能定义抽象方法 |
构造方法 | 有 | 无 |
应用 | 描述事物 | 制定规则 |