• 第二章.理解面向对象


    面向对象语言的三个基本特征:封装(Encapsulation)、继承(Inheritance)、多态(Polymorphism)

    封装:将对象的实现细节隐藏起来,然后通过一些公用方法来暴露该对象的功能

    继承:实现软件复用的手段,当子类继承父类后,子类作为一种特殊的父类,将直接获得父类的属性和方法

    多态:子类对象可以直接赋给父类变量,但运行时依然表现出子类的行为特征,意味着同一个类型的对象在执行同一个方法时,可能表现出多种行为特征。

    抽象:忽略一个主题中与当前目标无关的那些方面,抽象并不打算了解全部问题,而只是考虑部分问题。

    Java程序最小程序单位是类。

    面向对象的方式是由OOA(面向对象分析)、OOD(面向对象设计)和OOP(面向对象编程)三部分组成

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

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

    采用UML(统一建模语言)来描述记录OOA和OOD的结果

    UML:OOA和OOD的分析、设计结果需要统一的符号来描述、交流并记录,于是产生了UML

    UML包括13中类型的图形,常用的UML图形有用例图、类图、组件图、部署图、顺序图、活动图和状态机图。

    用例图:用于描述系统提供的系列功能,而每个用例则代表系统的一个功能模块。

    类图:表示系统中应该包含哪些实体,各实体之间如何关联。

    类图可以表示实体的静态内部关系,还可以表示实体之间的相互关系:

      关联:两个实体间存在关系,关联使用一条实线表示,带箭头的实线表示单向关联。

                 类中某个属性引用到了另外一个实体时,则变成了关联。

                 关联关系包括两个特例:聚合和组合,组合比聚合更加严格。

         聚合:学生可以是篮球俱乐部成员,也可以是书法俱乐部成员。使用带空心菱形框的实线表示。

         组合:你的耳朵是你的一部分,不可能是其他人的一部分。使用带实心菱形框的实线表示。

      泛化:与继承是同一个概念,都是指子类是一种特殊的父类,继承使用带空心三角形的实线表示。

         类实现接口是一种特殊的继承,使用带空心三角形的虚线表示。

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

    组件图:大型应用程序通常会有一个或多个可部署的组件组成。对Java而言,可复用的组件通常打包成一个JAR、WAR等文件

    部署图:用于描述软件系统如何部署到硬件环境中,它的用途是显示软件系统不同的组件将在何处物理运行,以及它们将如何彼此通信。

    顺序图:描述了对象之间的交互(顺序图和通信图都被称为交互图),重点在于描述消息及其时间顺序。

    活动图:用于描述用例内部的活动或方法的流程。

    状态机图:描述某一对象生命周期中需要关注的不同状态,并会详细描述刺激对象状态改变的事件,以及对象状态改变时所采取的动作。

    面向对象语言可以更好的提供可重用性、可扩展性和可维护性。

    Java语言中,除了8中基本数据类型外,一切都是对象。

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

    对象:是实际存在的该类事物的个体,因而也称为实例(instance)。

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

    类之间的结构关系:

    一般到特殊:“is a”典型的继承关系,子类是特殊的父类

    整体到部分:“has a”典型的组合关系,在一个类中保存另一个对象的引用来实现组合关系。

  • 相关阅读:
    django.core.exceptions.AppRegistryNotReady: Apps aren't loaded yet.
    Error fetching command 'collectstatic': You're using the staticfiles app without having set the STATIC_ROOT setting to a filesystem path. Command 'collectstatic' skipped
    windows 虚拟环境下 安装 mysql 引擎一系列错误处理
    项目概念流程
    pip 使用
    HTTPserver v3.0 版本项目
    GitHub 使用
    git 操作命令详解
    git 忽略部分文件类型的同步
    Python 正则处理_re模块
  • 原文地址:https://www.cnblogs.com/lanshanxiao/p/7244123.html
Copyright © 2020-2023  润新知