天天看点

面向对象 第一章 笔记(ing)提示一、介绍二、

笔记目录

  • 提示
  • 一、介绍
    • 1.1 介绍面向对象技术
      • (1) 面向过程编程
      • (2) 面向对象编程(OOP)
        • 1)对象 Object
        • 2)方法 method
        • 3)type 或 class
        • 4)优点
      • (3) 基本概念
        • 1)Object 对象
        • 2)Class 类
        • 4)Message 消息
        • 5)Abstraction 抽象
        • 6)Encapsulation 封装
        • 7)Inheritance 继承
        • 8)Polymorphism 多态
    • 1.2 介绍UML
    • 1.3 软件开发过程和OOA&D
    • 1.4 组件和CBSD
    • 1.5 模式和体系结构
  • 二、

提示

主要是记载学习面向对象分析与设计课程的笔记总结

一、介绍

1.1 介绍面向对象技术

(1) 面向过程编程

  • 这种编程范式本质上是机器/汇编语言的抽象;
  • 编程是围绕过程进行的;
  • 专注于数据结构、算法和步骤的排序。

面向过程程序的主要内容就是算法和数据结构

面向对象 第一章 笔记(ing)提示一、介绍二、

算法:一组用于解决问题的指令。

数据结构:用于以特定方式组织数据的构造。

缺点:

  • 将程序与数据分割过于清晰
    面向对象 第一章 笔记(ing)提示一、介绍二、
  • 分析与编程设计之间存在代沟
    面向对象 第一章 笔记(ing)提示一、介绍二、
  • 分析结果与具体落实需要进行转化;
  • 设计的模型需要很多的步骤实现;
  • 一个完成的程序很难二次利用;
  • 面向过程编程的项目很难进行拓展和维护。

(2) 面向对象编程(OOP)

OOP:Object-Oriented Programming

面向对象编程:编程是围绕对象进行的,是指导软件构建的一组原则,以及支持这些原则的语言、数据库和其他工具。

1)对象 Object

  • 对象是在软件运行时才会存在的概念,软件运行时等价于生成了一个世界,世界里的万物都可为对象。一个对象可以是一个人、地方、事件;
  • 对象包括数据和方法;
  • 相同类的对象具有相同的数据和方法;
  • 对象之间通过互相调用实现信息的接受和发送。

2)方法 method

由一个对象执行的操作,即方法。

3)type 或 class

  • type 是型,相对于class,型的外延更加宽泛,型是来约束对象的行为的,比如 int 类型对象,只可进行 int 类型的操作;
  • class,个人理解就是类,是生成对象的模型,由同一个模型生成对象,具有相同的方法和数据。

4)优点

  • 单一模式:用户、分析人员、设计人员和实现者使用的编程语言单一;
  • 体系结构和代码便于重用;
  • 编程模型更加接近于现实世界:更加准确的描述了现实世界的实体、基于自然区分而切分体系、易于理解和维护;
  • 稳定性更好:需求中的一个小变化并不意味着开发中的系统的巨大变化;
  • 对于变化的自适应能力强。

(3) 基本概念

1)Object 对象

定义: 对象是具有定义良好的边界和标识的实体,它封装了状态和行为。

  • 状态:由属性和关系表示,是对象可能存在的条件之一,通常会随着时间而改变;
  • 行为:行为由操作、方法和状态机表示,决定一个对象如何行动和反应,对象的可见行为由它可以执行的操作而定义;
  • 每个对象都有唯一的标识,即使状态与另一个对象相同;
  • 一个对象不会独自承担所有任务,也不会没有存在的意义;
  • 对象之间通过消息进行交互。

2)Class 类

定义: 类是一组具有相同属性和行为的对象的描述。

个人理解: 就是一类对象的模型,对象就是类的具体实现,就比如,我们都对神仙有个基本而模糊的认知比如会飞有仙法等等,观影菩萨就是一个具体的神仙,会飞会仙法,神仙是一个类,观影菩萨就是对象。

  • 类是对象的抽象定义,类中定义了对象的结构和行为,是创建对象的模板;
  • 对于一堆(1~n个)相同对象可以抽象为一个类;
  • 对象是类的实例。
  • 类的属性(attribute):是命名属性(不赋值),主要作用就是描述类的实例(即对象)的对应属性应当具有的规范(大小范围、可进行操作等等),一个类可以有0~n个属性;
  • Operation:操作是服务的实现,可以从类的任何对象请求该服务来影响行为,一个类可以有任意数量的操作,也可以没有操作(所谓操作即对类中的属性进行增删改查等等行为,与对象中的method不是一回事)。

注意: Object的属性为property,Class的属性为attribute,这是不一样的,attribute指命名属性。

4)Message 消息

定义: 一种对象之间通信的规范,该规范传递信息,并期望活动随之发生(一个对象请求另一个对象执行操作)。

5)Abstraction 抽象

个人理解: 所谓抽象,就是将一个实体中的属性、操作提取出来。

面向对象 第一章 笔记(ing)提示一、介绍二、

6)Encapsulation 封装

定义: 封装意味着设计、生产和描述软件,以便在不了解其工作细节的情况下轻松使用软件,也被称为信息隐藏。

解释: 封装的一个具体实例就是编程中使用的函数接口,我们编写好接口后,只需要向外界提供接口即可,外界不清楚我们内部的属性和方法。而万物都是接口,手机就是接口,我们解锁手机,只需输入密码即可解锁,而不清楚里面是如何运作的。

7)Inheritance 继承

8)Polymorphism 多态

1.2 介绍UML

1.3 软件开发过程和OOA&D

1.4 组件和CBSD

1.5 模式和体系结构

二、

继续阅读