• 对象与类


    一、面向对象与面向过程的区别

    项目名称 面向对象程序设计 面向过程程序设计(也叫结构化编程)
    定义 面向对象顾名思义就是把现实中的事务都抽象成为程序设计中的“对象”,其基本思想是一切皆对象,是一种“自下而上”的设计语言,先设计组件,再完成拼装。 面向过程是“自上而下”的设计语言,先定好框架,再增砖添瓦。通俗点,就是先定好main()函数,然后再逐步实现mian()函数中所要用到的其他方法。
    特点 封装、继承、多态 算法+数据结构
    优势 适用于大型复杂系统,方便复用 适用于简单系统,容易理解
    劣势 比较抽象、性能比面向过程低 难以应对复杂系统,难以复用,不易维护、不易扩展
    设计语言 Java、Smalltalk、EIFFEL、C++、Objective-、C#、Python等 C、Fortran

    转自:https://blog.csdn.net/sugar_no1/article/details/86366714

    二、类与对象

    类是构造对象的模板或蓝图。由类构造对象的过程称为创建类的实例。

    (1)类与对象的主要区别:

    对象:对象是类的一个实例,有状态和行为。例如,一条狗是一个对象,它的状态有:颜色、名字、品种;行为有:摇尾巴、叫、吃等。 

    类:类是一个模板,它描述一类对象的行为和状态。

    (2)对象的三个主要特性:

    对象的行为——可以对对象施加哪些操作,或可以对对象施加哪些方法?

    对象的状态——当施加那些方法时,对象如何响应?

    对象的标识——如何辨别具有相同行为与状态的不同对象?

    同一个类的所有对象实例,由于支持相同的行为而具有家族式的相似性。对象的行为是用可调用的方法定义的。

    此外,每个对象都保存着描述当前特征的信息。这就是对象的状态。对象的状态可能会随着时间而发生改变,但这种改变不会是自发的。对象状态的改变必须通过调用方法实现(如果不经过方法调用就可以改变对象状态,只能说明封装性遭到了破坏)。(关于对象的状态见https://www.cnblogs.com/guozhenqiang/p/5620924.html

    但是,对象的状态并不能完全描述一个对象。每个对象都有一个唯一的身份。例如,在一个订单处理系统中,任何两个订单都存在着不同之处,即使所订购的货物完全相同也是如此。需要注意,作为一个类的实例,每个对象的标识永远是不同的,状态常常也存在着差异。

    (3)类之间的关系

    在类之间,最常见的关系有依赖(“uses-a”)、聚合(“has-a”)、继承(“is-a”)

    依赖,即“uses-a”关系,是一种最明显的。最常见的关系。例如,Order(订单)类使用Account(账户)类是因为Order对象需要访问Account对象查看信用状态。但是Item(产品)类不依赖于Account类,这是因为Item对象与客户账户无关。因此,如果一个类的方法操作另一个类的对象,我们就说一个类依赖于另一个类。

    应该尽可能地将相互依赖的类减至最少。如果类A不知道B的存在,它就不会·关心B的任何改变(这就意味着B的改变不会导致A产生任何 bug)。用软件工程的属于来说,就是让类之间的耦合度最小。

    聚合,即“has-a”关系,是一种具体且易于理解的关系。例如,一个Order对象包含一些Item对象。聚合关系意味着类A的对象包含类B的对象。

    继承,即()

  • 相关阅读:
    jvm内存模型
    tomcat下出现The file is absent or does not have execute&
    linux下安装apache
    什么时候能踏上征程?追寻真正的自由和信仰
    linux基础命令
    UVALive 7263 Today Is a Rainy Day
    HDU 6071 Lazy Running
    HihoCoder 1634 Puzzle Game
    HDU 6228 Tree
    HDU 2222 Keywords Search AC自动机模版
  • 原文地址:https://www.cnblogs.com/peng19920430/p/12913174.html
Copyright © 2020-2023  润新知