1. 弱实体与强实体
一个实体的存在必须以另一实体的存在为前提。前者就称为“弱实体”,后者称为“强实体”。
2.关系模式的主键为全码
关系模式的所有属性组组成该关系模式的候选码,称为全码。即所有属性都是主属性
描述用户需求,从用户的角度描述系统的功能。展现了一组用例、参与者(actor)以及它们之间的关系。
椭圆表示用例;人形符号表示参与者(参与者不一定是人,也可能是系统);
帮组开发团队以一种可视化的方式理解系统的功能需求
填用例名,参与者对应的角色名,两个用例之间的关系。
构建用例图时,常用的方式是先识别参与者,然后确定用例以及用例之间的关系。
包含关系<>是用例之间的关系。若用例A包含用例B,则箭头指向被包含的用例B。既要执行用例A,必须先执行用例B。
扩展关系<>是用例之间的关系。若用例A中需要扩展用例B,则箭头指向基础用例A。既要执行用例A,不一定需要执行用例B。
泛化关系是参与者之间的关系。描述了一个参与者可以完成另一个参与者同样的任务,并可补充额外的角色功能。
显示系统的静态结构,表示不同的实体是如何相关联的。展现了一组对象、接口、协作和它们之间的关系。
三个矩形,从上往下排列,分别是名字,属性,操作
表示一个逻辑类或实现类,逻辑类通常是用户的业务所涉及的事物;实现类是程序员处理的实体
填类名,方法名,属性名、填多重度、填关系
[1]:表示一个集合中的一个对象对应另一个集合中的1个对象。
[0..*]:表示一个集合中的一个对象对应另一个集合中的0个或多个对象。
[1..*]:表示一个集合中的一个对象对应另一个集合中的1个或多个对象。
[*]:表示一个集合中的一个对象对应另一个集合中的多个对象。
依赖关系:虚线箭头,箭头指向被使用者
关联关系
聚合:实线空心菱形,头部指向整体,部分离开整体可以单独存在
组合:实线实心菱形,头部指向整体,部分不能脱离整体存在
泛化关系(继承):实线空心三角箭头,箭头指向父类
实现关系:虚线空心箭头,箭头指向接口
展现了一组对象以及它们之间的关系。对象图是类图的实例,几乎使用与类图完全相同的标示。
顺序图是场景的图形化表示,描述了以时间顺序组织的对象之间的交互活动。
构造顺序图时遵循如下指导原则:
横跨图的顶部,每个框表示每个类的实例或对象;类实例名称和类名称使用冒号分开
显示流程中不同对象之间的调用关系,还可以显示不同对象的不同调用。
填对象名、填消息
描述对象的所有状态以及事件发生而引起的状态之间的转移
起始点:实心圆
状态之间的转换:使用开箭头的线段
状态:圆角矩形
判断点:空心圆
一个或多个终止点:内部包含实心圆的圆
表示某个类所处的不同状态以及该类在这些状态中的转换过程
描述满足用例要求所要进行的活动以及活动时间的约束关系
起始点:实心圆
活动:圆角矩形
终止点:内部包含实心圆的圆
泳道:实际执行活动的对象
表示两个或多个对象之间在处理某个活动时的过程控制流程
分解、解决、合并
递归技术
二分查找
一种选优搜索法,当搜索到某一步时,发现原先选择并不优或达不到目标,就退回一步重新选择。
总是做出在当前来说是最好的选择,而并不从整体上加以考虑,局部最优,整体不一定最优。
在求解问题中,对于每一步决策,列出各种可能的局部解,再依据某种判定条件,舍弃那些肯定不能得到最优解的局部解,在每一步都经过筛选,以每一步都是最优解来保证全局是最优解
interface //定义接口的关键字
implements //类实现接口的关键字
//如果出现了interface,后面必然要有implements。反之,亦然。
//声明接口
interface 接口名 {
//抽象方法
public void ClassName();
};
//类实现接口
class 类名 implements 接口名{
//重写接口方法
public void ClassName(){
System.out.println("abc");
}
};
//引入包中的类
import 包
//类声明
[类修饰符] class [类名] extends [基类]〔implements 接口〕 //类修饰符:public、private、abstract(抽象类,不能被new)、final(不能继承此类,成员方法不能被覆盖)
{
//从这里开始为类体部分
// 成员变量〔(类变量:用static修饰的变量)、(实例变量:没有用static修饰的变量)、(最终变量:用final修饰的变量)〕
[修饰符] 数据类型 变量名
// 成员方法〔类方法:用static修饰的方法、实例方法:没有用static修饰的方法〕
// 如果要在类方法中使用实例变量或者实例方法,就需要使用〔对象〕.〔数据〕的方式
//构造方法:构造方法名必须与其类名相同,而且大小写都要一致,构造方法没有返回值,不用void修饰
// 构造函数
[修饰符] 类名([参数行])
{
//构造函数主体(初始化操作)
}
//类体部分结束
}
//类的继承
[修饰符] class 子类名 extends [父类名]{
……… //类体
}
//定义抽象类
abstract class 类名
{
成员变量;
方法();//定义一般成员方法
abstract 方法(); //定义抽象方法
}
//异常处理
try{
//可能出现的异常的程序代码
}catch( ExceptionName1 e ){
//处理例外事件1
}catch( ExceptionName2 e ){
//处理例外事件2
}
......
}finally{
......
}
//声明接口
interface 接口名 {
//抽象方法
public void 方法名();
};
//类实现接口
class 类名 implements 接口名{
//重写接口方法
public void 方法名(){
System.out.println("abc");
}
};
//定义抽象类
abstract class AirCraft {
//成员变量
protected 接口名 接口名1;
//实现方法
public void 方法名(){
接口名1.方法名();
};
};
//继承父类
class Helicopter extends AirCraft{
public Helicopter (){
//实例化父类的成员变量
接口名1 = new 类名;
}
};
类型 | 关键字 | 含义 |
声明 | ||
import | 表明要访问指定的类或包 | |
public | 共用模式 | |
private | 私用模式 | |
protected | 保护模式 | |
package | 包 | |
class | 类 | |
interface | 接口 | |
enum | 枚举 | |
implements | 表明一个类实现了给定的接口 | |
void | 声明当前成员方法没有返回值 | |
static | 表明具有静态属性 | |
abstract | 表明类或者成员方法具有抽象属性 | |
final | 用来说明最终属性,表明一个类不能派生出子类,或者成员方法不能被覆盖,或者成员域的值不能被改变,用来定义常量 | |
extends | 表明一个类型是另一个类型的子类型,这里常见的类型有类和接口 | |
strictfp | 声明FP_strict(单精度或双精度浮点数) | |
native | 声明一个方法是由与计算机相关的语言(如C/C++/FORTRAN语言)实现的 | |
transient | 声明不用序列化的成员域 | |
volatile | 表明两个或者多个变量必须同步地发生变化 | |
synchronized | 表明一段代码需要同步执行 | |
- | const | 保留关键字,没有具体含义 |
goto | 保留关键字,没有具体含义 | |
new | 用来创建新实例对象 | |
return | 从成员方法中返回数据 | |
break | 提前跳出一个块 | |
continue | 回到一个块的开始处 | |
super | 表明当前对象的父类型的引用或者父类型的构造方法 | |
this | 指向当前实例对象的引用 | |
instanceof | 用来测试一个对象是否是指定类型的实例对象 | |
assert | 断言,用来进行程序调试 | |
异常处理 | catch | 用在异常处理中,用来捕捉异常 |
try | 尝试一个可能抛出异常的程序块 | |
throw | 抛出一个异常 | |
throws | 声明在当前定义的成员方法中所有需要抛出的异常 | |
finally | 用于处理异常情况,用来声明一个基本肯定会被执行到的语句块 | |
基本数据类型 | boolean | 布尔类型 |
int | 整数类型 | |
long | 长整数类型 | |
short | 短整数类型 | |
float | 单精度浮点数类型 | |
double | 双精度浮点数类型 | |
byte | 字节类型 | |
char | 字符类型 | |
逻辑结构 | if | 条件语句的引导词 |
else | 用在条件语句中,表明当条件不成立时的分支 | |
switch | 分支语句结构的引导词 | |
case | 用在switch语句之中,表示其中的一个分支 | |
default | 默认,例如,用在switch语句中,表明一个默认的分支 | |
for | 一种循环结构的引导词 | |
while | 用在循环结构中 | |
do | 用在do-while循环结构中 |
年份 | 时间 | 类型 | 模式 | 关键字 |
---|---|---|---|---|
2018 | 上 | 创建型 | 生成器 | 关键字 |
2017 | 下 | 结构型 | 桥接 | 关键字 |
2017 | 上 | 创建型 | 生成器 | 关键字 |
2016 | 下 | 结构型 | 装饰 | 关键字 |
2016 | 上 | 结构型 | 适配器 | 关键字 |
2015 | 下 | 行为型 | 策略 | 关键字 |
2015 | 上 | 行为型 | 访问者 | 关键字 |
2014 | 下 | 行为型 | 命令 | 关键字 |
2014 | 上 | 行为型 | 观察者 | 关键字 |
2013 | 下 | 结构型 | 桥接 | 关键字 |
2013 | 上 | 创建型 | 原型 | 关键字 |
2012 | 下 | 创建型 | 抽象工厂 | 关键字 |
2012 | 上 | 结构型 | 装饰 | 关键字 |
2011 | 下 | 行为型 | 状态 | 关键字 |
2011 | 上 | 结构型 | 组合 | 关键字 |
2010 | 下 | 结构型 | 组合 | 关键字 |
2010 | 上 | 行为型 | 策略设计 | 关键字 |