《疯狂Java讲义(第3版)》.(李刚)——面向对象及UML

1、面向对象的基本特征:封装、继承、多态

Java完全支持使用对象、类、继承、封装、消息等基本概念来进行程序设计,允许从现实世界中客观存在的事物(即对象)出发来构造软件系统,在系统构造中尽可能运用人类的自然思维方式。实际上,这些优势是所有面向对象编程语言的共同特征。而面向对象的方式实际上由OOA(面向对象分析)、OOD(面向对象设计)和OOP(面向对象编程)三个部分有机组成,其中,OOA和OOD的结构需要使用一种方式来描述并记录,目前业界统一采用UML(统一建模语言)来描述并记录OOA和OOD的结果。目前UML的最新版是2.0它一共包括13种类型的图形,使用这13种图形中的某些就可以很好地描述并记录软件分析、设计的结果。

2、面向对象的基本结构

1)顺序结构

2)选择结构

3)循环结构

3、UML

1)用例图:从用户角度描述系统功能,并指各功能的操作者

2)类图:展现了一组对象、接口、协作和它们之间的关系。类图描述的是一种静态关系,在系统的整个生命周期都是有效的,是面向对象系统的建模中最常见的图。

3)组件图:展现了一组组件的物理结构和组件之间的依赖关系。部件图有助于分析和理解组件之间的相互影响程度。

4)部署图:展现了运行处理节点以及其中的组件的配置。部署图给出了系统的体系结构和静态实施视图。它与组件图相关,通常一个节点包含一个或多个构建。

5)顺序图:显示用例的详细流程和不同对象之间的调用关系。

6)活动图:一种特殊的状态图,展现了系统内一个活动到另一个活动的流程。活动图有利于识别并行活动。

7)状态机图:由状态、转换、事件和活动组成,描述类的对象所有可能的状态以及事件发生时的转移条件。通常状态图是对类图的补充,仅需为那些有多个状态的、行为随外界环境而改变的类画状态图。

4、常见的几种关系

关联(Association),泛化(Generalization), 依赖(Dependency)

1)关联(Association)

【关联关系】:是一种拥有的关系,它使一个类知道另一个类的属性和方法;如:老师与学生,丈夫与妻子

关联可以是双向的,也可以是单向的。双向的关联可以有两个箭头或者没有箭头,单向的关联有一个箭头。

【箭头及指向】:带普通箭头的实心线,指向被拥有者

2)泛化(Generalization)

【泛化关系】:是一种继承关系,它指定了子类如何特化父类的所有特征和行为例如:老虎是动物的一种.

【箭头指向】:带三角箭头的实线,箭头指向父类

3) 依赖(Dependency)

【依赖关系】:是一种使用的关系,所以要尽量不使用双向的互相依赖。

【代码表现】:局部变量、方法的参数或者对静态方法的调用

【箭头及指向】:带箭头的虚线,指向被使用者

更多资料:http://blog.csdn.net/column/details/u-m-l.html

时间: 2024-10-26 03:17:39

《疯狂Java讲义(第3版)》.(李刚)——面向对象及UML的相关文章

《疯狂Java讲义(第3版)》.(李刚)——java命名规则及编码规范

1.命名规则: 此处借鉴一下他人的资料,比较全面一些,方便了解学习. JAVA源文件的命名 JAVA源文件名必须和源文件中所定义的类的类名相同. Package的命名 Package名的第一部分应是小写ASCII字符,并且是顶级域名之一,通常是com.edu.gov.mil.net.org或由ISO标准3166.1981定义的国家唯一标志码.Package名的后续部分由各组织内部命名规则决定,内部命名规则指定了各组件的目录名,所属部门名.项目名等. Class/Interface的命名 Clas

《疯狂Java讲义(第3版)》.(李刚)——注释

1.注释的必要性: 1)自己或他人重构系统时方便理清楚这段代码的流程和思路. 2)增加自己代码的可读性. 3)当代码出现错误时注释代码可逐渐排查错误,缩小错误范围(我自己更喜欢debug). 2.注释类型 1)单行注释. 在需要注释的前方加上双斜杠即可(//) public class LineComment { //这是单行注释的范例 public static void main(String args[]) { //这只是一个单行注释的例子 System.out.println("Sing

《疯狂Java讲义(第3版)》.(李刚)——8大排序

8种排序之间的关系: 1. 直接插入排序 (1)基本思想:在要排序的一组数中,假设前面(n-1)[n>=2] 个数已经是排 好顺序的,现在要把第n个数插到前面的有序数中,使得这n个数 也是排好顺序的.如此反复循环,直到全部排好顺序. (2)实例 (3)用java实现 package com.alex.demo03; /** * Description * <br>网站:<a href= "http://blog.csdn.net/qq_32347977">

【疯狂Java讲义-读书笔记】2.1 面向对象

2.1.1 结构化程序设计简介 功能 函数 2.1.2 程序的三种基本结构 顺序结构 选择结构  单选择 双选择 多选择 循环结构  当型循环 直到型循环 2.1.3 面向对象程序设计简介 Field+Method=Class 猪八戒.吃(西瓜); 2.1.4 面向对象的基本特征 封装:将对象的实现细节隐藏起来,然后通过一些公用方法来暴露该对象的功能 继承:当子类继承父类后,子类作为一种特殊的父类,将直接获得父类的属性和方法 多态:子类对象可以直接赋给父类变量,但运行时依然表现出子类的行为特征,

《疯狂java讲义》读后感

<疯狂java讲义·第三版>,全书共851页,18章. 目录如下: 第1章 Java语言概述与开发环境 第2章 理解面向对象 第3章 数据类型和运算符 第4章 流程控制与数组 第5章 面向对象(上) 第6章 面向对象(下) 第7章 Java基础类库 第8章 Java集合 第9章 泛型 第10章 异常处理 第11章 AWT编程 第12章 Swing编程 第13章 MySQL数据库与JDBC编程 第14章 Annotation(注释) 第15章 输入/输出 第16章 多线程 第17章 网络编程 第

疯狂Java讲义(第4版) PDF 电子书 百度云 网盘下载

java电子书推荐理由:1)作者提供用于学习和交流的配套网站及作者亲自在线的答疑微信群.QQ群. 2)DVD光盘中含 1500分钟图书部分内容的相关视频 图书配套代码 Java面试题真题 PPT课件 设计模式电子书 有助于完成课后练习的大量完整案例 3)<疯狂Java讲义>历时十年沉淀,现已升级到第4版,经过无数Java学习者的反复验证,被包括北京大学在内的大量985.211高校的优秀教师引荐为参考资料.选作教材. 4)<疯狂Java讲义>曾翻译为中文繁体字版,在宝岛台湾上市发行.

《疯狂Java讲义》(三十五)---- 网络编程

Java网络通信非常简单,服务器端通过ServerSocket建立监听,客户端通过Socket连接到指定服务器后,通信双方就可以通过IO流进行通信. IP地址用于唯一地标识网络中的一个通信实体.端口用于表示数据交给哪个通信程序处理. 公认端口从0到1023,紧密绑定一些特定的服务.注册端口从1024到49151,应用程序通常应该使用这个范围的端口.动态端口从49152到65535,是应用程序使用的动态端口,应用程序一般不会主动使用这些端口. package com.ivy.net; import

疯狂java讲义——继承

本文章只是记录我在学习疯狂java讲义里面,对之前java知识查缺补漏进行的总结. 方法重写 方法重写要遵循"两同两小一大"规则."两同"即方法名相同.形参列表相同:“两小”指的是子类方法返回值类型应比父类方法返回值类型更小或相等,子类方法声明抛出异常类应比父类方法声明抛出异常类更小或相等;"一大"指的是子类方法访问权限应比父类方法访问权限更大或相等.尤其指出,覆盖方法和被覆盖方法要么都是类方法,要么都是实例方法,不能一个是类方法,一个是实例方法

疯狂java 讲义第三章练习题---画圆

public class PaintRound{ /** * @author Dream_e. * @version v1.0 */ private int r;//圆的半径 PaintRound(int r){ this.r = r; } public void paint(){ int y = 2*r;//y的最大值为半径的2倍 int x = 0; int c = 0; int z = 2;//坐标轴递减量. for(int j = y; j >= 0; j-=z){ x = getX(r