Java-简介

120 阅读4分钟

一、java不是纯面向对象语言

纯面向对象语言的特征:
1.封装 / 数据隐藏
2.继承
3.多态性
4.抽象化
5.所有预定义类型都是对象
6.所有用户定义的类型都是对象
7.对对象执行的所有操作必须仅通过对象公开的方法

java只满足1 2 3 4 6 ,不支持5 7

5 - java中存在基本类型
7 - static关键字修饰可以在没有对象的情况下使用

二、Java完全支持面向对象的三种基本特征:继承 封装 多态。

面向对象的方式实际上由OOA(面向对象分析) OOD(面向对象设计) OOP(面向对象编程)三个部分有机组成,其中OOA和OOD的结构需要使用一种方式来描述记录,UML(统一建模语言)。

1.封装[隐藏信息在类内部,不允许外部程序直接方法,而是通过提供的方法来对信息进行操作和访问]

--遵循“开闭原则”,禁止外部直接访问和修改类的信息

2.继承[类与类的关系,子类拥有父类的所有属性和方法(除了private修饰的不能拥有),从而实现代码复用]

3.多态[引用多态和方法多态]

-引用多态:父类引用可以指向本类对象,也可以指向子对象

-方法多态:子类中可以重写父类的方法,在调用方法时根据引用指向的子类对象决定调用哪个具体的方法。方法多态的强大主要体现在可以根据调用时参数的不同,而自主匹配调用的方法,例如:重载

重载和重写:

重写:一般发生在有继承关系的子类中,子类中定义了一个方法,其 方法名、返回值类型、参数列表 与父类中某个方法一样,此时就是子类中重写(覆盖)了父类的同名方法。

父类引用调用方法时,根据引用指向的对象决定调用父类定义的方法还是子类定义的方法,这体现了多态。

重载:发生在同一个类中,存在 多个方法的方法名相同,但是参数列表不同。参数列表不同指的是参数个数、参数类型或者参数的顺序不同。

调用方法时通过传递给它们的不同个数和类型的参数来决定具体使用哪个方法,这也体现了多态

三、UML

3.1类图

显示了系统的静态结构。类在类图上使用包含三个部分的矩形来描述,类名 类包含的属性 类包含的方法

类之间有三种关系:关联(包括聚合 组合)泛化 依赖

3.1.1关联

关联具有一定的方向性:如果仅能从一个类单方向访问另一个类,责备称为单向关联;如果两个类可以互相访问对象,则被称为双向关联。(关联用一条实线来表示,带箭头的实线表示单向关联) 关联和属性很像,关联和属性的关键区别在于:类里的某个属性引用到另一个实体时,就变成了关联。

关联包括两种特例,聚合和组合,都有部分和整体的关系,但通常认为组合比聚合更加严格。

当某个实体聚合成另一个实体时,该实体还可以同时是另一个实体的部分。(聚合使用带空心菱形框的实线表示)[例:雁群/大雁]

当某个实体组合成另一个实体时,该实体不能同时是另一个实体的一部分。(组合使用带实心菱形框的实线表示)[例:大雁/翅膀]

3.1.2.泛化(与继承是同一个概念)带空心三角形的实线表示【类实现接口可视为一种特殊的继承,这种实现用带空心的的三角形的虚线表示】

3.1.3.依赖 如果一个类的改动会导致另一个类的改动,则称两个类之间存在依赖。依赖关系使用带箭头的虚线表示,箭头指向被依赖的实体。

依赖的可以原因: 改动的类将消息发给另一个类 改动的类以另一个类作为数据部分 改动的类以另一个类作为操作参数

3.2顺序图

顺序图显示具体用例的详细流程,并且显示流程中不同对象之间的调用关系,同时还可以很详细地显示对不同对象的不同调用。顺序图描述了对象之间的交互,重点在于描述消息及其时间顺序。

顺序图有两个维度:垂直维度,已发生的时间顺序显示消息/调用的序列 水平维度,显示消息被发送到的对象实例。