面向对象理解

面向对象

。目前软件开发领域有两种主流的开发方法

。。结构化开发方法

       *C、Basic、Pascal

。。和面向对象开发方法

       *C++、Java、C#、Ruby

结构化程序设计

。结构化程序设计方法按功能来分析系统需求,则其同时被称为面向功能的程序设计方法

。主要原则

       。。自定向下

       。。逐步求精

       。。模块化

。SA、SD、SP保证软件系统的开发进度和质量、

       。。采用结构化分析(Structured Analysis,SA)对系统进行需求分析

       。。使用结构化设计(Structured Design,SD)对系统进行概要设计

       。。采用结构化编程(Structured Program,SP)来实现系统

。结构化软件系统由函数组成

       。。函数是结构化程序设计里最小程序单元

       。。主函数-程序入口函数

       。。主函数依次调用其他普通函数,普通函数之间依次调用

       。。每个函数都是具有输入、输出的子系统

              *输入数据包括函数形参、全局变量、常量等

              *输出数据包括函数返回值以及传出参数

。局限性

       。。设计不够直观,与人类思维不一致

       。。适应性差,可扩展性不强

              *由于自定向下的设计方式,当用户需求发生改变、需要修改现有方法实现时,都需要自定向下修改模块,维护成本高

。三种基本结构

       。。顺序结构

       。。选择结构

       。。循环结构

              *当型循环-先判断条件,当条件为真执行循环体。先判断后执行

              *直到型循环-先执行,直到条件为假时结束循环。先执行后判断

面相对象程序设计

。基本思想-使用类、对象、继承、封装、消息等基本概念进行程序设计

。面向对象软件系统由多个类组成

       。。类是面向对象开发系统最小的程序单元

       。。类生成系统的不同对象,而对象直接映射成客观世界的各种事物

。类代表客观世界具有某种特征的一类事物

       。。成员变量-封装一类事物内部状态数据

       。。方法-提供操作状态数据的方法以及实现类相应的行为特征

       。。成员变量(状态数据)+方法(行为)=类定义

。基本特征

       。。封装-隐藏对象的实现细节,通过公共方法暴露对象功能

       。。继承-实现复用,子类继承父类后,直接获父类的属性和方法

       。。多态-子类对象可以直接赋给父类对象,但运行时依然表现出子类的行为特征

              *同一个类型的对象在执行同个方法时,可能表现出多种行为特征

。抽象

       。。忽略主题中与当前目标无关的方面,以便充分注意与当前目标相关的方面

       。。抽象是面向对象的重要部分但不是面相将对象的特征之一

              *所有编程语言都需要抽象

。支持功能

       。。对象是面向对象方法中最基础的概念

              *基本特征:唯一标志性、分类性、多态性、封装性、模块独立性

       。。类是具有共同属性、共同方法的一类事物

              *类是对象的抽象

              *对象是类的实例

              *类是软件系统最小的程序单元

              *类的封装性将各种细节隐藏起来,并通过公用方法来暴露该类对外提供的功能,提高类的高内聚,降低对象之间的耦合性

       。。消息是对象之间相互协作的机制。

              *消息是一个实例以另一个实例之间相互通信的机制

       。。继承是类之间共享属性和操作的机制

              *继承具有传递性

              *继承分为单继承和多继承

              *Java不支持多继承

。“基于对象”和“面向对象”都实现“封装”的概念,但面向对象实现了“继承和多态”

UML(Unified Modeling Language,标准/统一建模语言)

。流程

       。。OOA(Object Oriented Analysis,面向对象分析)

              *对目标系统进行分析,建立分析模型,并将之文档化

       。。OOD(Object Oriented Design,面向对象设计)

              *用面向对象的思想对OOA结果进行细化,得出设计模型

       。。OOP(Object Oriented Program,面向对象编程)

。用例图 

       。。描述系统提供的系列功能

。。每个用例代表系统的一个功能模块

。类图

       。。表示系统包含的实体以及实体之间的关联(显示系统的静态结构)

       。。类之间的基本关联

    *关联 

    *聚合-部分与整体关系:部分 整体

    *组合-包含聚合关系的部分与整体关系: 部分 整体

              *泛化-与继承同一概念:  子类  父类

              *依赖-一个类(B)的改动导致另一个类(A)的改动:A类B类

。组件图

。部署图

。顺序图

。活动图

。状态机图

Java的面向对象特征

Java是纯面向对象编程语言

。一切都是对象

。。除8个基本数据类型外,一切都是对象

。。对象是面向对象程序设计的中心

。。对象具有状态和操作

。类和对象

       。。具有相同或相似性质的一组对象的抽象就是类

       。。类是对一切事物的描述,是抽象的、概念上的定义

       。。对象是实际存在的该类事物的个体,即实例

       。。对象的抽象化是类,类的具体化是对象

。类之间的结构关系

       。。一般-特殊关系:继承关系(extends)

       。。整体-部分关系:组合关系(通过在一个类中保存另一个类的引用来实现)

posted @ 2018-05-22 11:23  Demetris  阅读(219)  评论(0)    收藏  举报