C# 面向对象之概念理解

什么是对象?

《韦氏大词典》中对对象定义:

(1)某种可为人所感知的物质。

(2)思维、感受或动作所作用的物质或精神体。

----说白了万物皆对象

熟悉的对象描述:

对象就是客观世界中的物体在人脑中的映像,和人为的概念。一棵树、一个人、一本书、一个借口都是对象。只要这个对象存在于我们的思维意识当中,我们就可以以此判断同类的东西。在软件开发中,对象是建立面向对象程序所依赖的基本单元。

软件对象定义:

所谓(软件)对象,是一种将状态(数据)和行为(操作)合成到一起的软件构造,用来描述真实世界的一个(物理或概念性的)对象。

对象操作也可以看作是可以向对象要求提供的服务(C#编程语言称作为方法。行为/操作/方法)。

什么是类?

类是对具有相同属性和行为的一个或多个对象的描述(抽象),即类是对象的模板,通过同一个类创建的不同对象具有相同的行为,对象是类的具体化。

类定义的要素:

1.定义该类的对象所需要的数据结构;

2.这些东西要执行的操作,尤其是有哪些操作,类的对如何被调用执行这些操作。

术语“特征”和“成员”:被用来描述类的attribute和方法。例如:一个类定义包括三个attribute声明和五个方法声明,则可以说它有八个特征/成员。

类定义可以看作是创建软件对象的模版——一种“模版”,用来:

  • 在内存中开辟一个数据区,储存新对象的attribute
  • 把一系列行为和对象关联起来。

实体化:指对象在类的声明基础上被创建(构造)过程。(实际上是把对象被创建到的物理内存地址与变量关联起来。当对象的引用丢失时,CLR(公共语言运行时)会定时执行垃圾回收操作,自动回收丢失了的对象所占的内存。)

     类与对象的不同之处在于:

  1. 类定义特征——attribute、方法等——该类的所有对象都拥有这些特性。
  2. 对象是模版的单一实体,attribute值已经给出,方法可以被调用。
  3. 对象可以看作是填充了内容的模版。

为何要面向对象?

1) 与人类习惯的思维方式一致

  • 传统的程序设计技术是面向过程的设计方法,以算法为核心,把数据和过程作为相互独立的部分,数据代表问题空间中的客体,程序代码则用于处理这些数据。
  • 传统的程序设计技术忽略了数据和操作之间的内在联系,设计的软件系统其解空间和问题空间并不一致,难于理解。
  • 面向对象的软件技术以对象为核心,软件系统由对象组成。对象是对现实世界实体的正确抽象,它由描述内部状态表示静态属性的数据,以及可以对这些数据施加的操作(对象的动态行为),封装在一起所构成的统一体。
  • 面向对象的软件技术的基本原理,使用现实世界的概念抽象地思考问题从而自然地解决问题。强调模拟现实世界中的概念而不强调算法,鼓励开发者在软件开发的绝大部分过程中都用应用领域的概念去思考。
  • 传统的软件开发过程可以用“瀑布”模型来描述,强调“自顶向下”按部就班地完成软件开发工作。
  • 面向对象方法学的出发点和基本原则就是分析、设计、实现一个软件系统的方法和过程,尽可能接近人们认识世界解决问题的方法和过程。也就是使描述问题的问题空间和描述解法的解空间在结构上尽可能一致。

2)稳定性好

  • 传统的程序设计技术以算法为核心,开发过程基于功能分析和功能分解。
  • 面向对象的软件技术以对象为核心,基于构造问题领域的对象模型。当系统的功能需求变化时并不会引起软件结构的整体变化,仅需要做一些局部修改。

3)可重用性好

  • 用已有零部件装配新的产品是典型的重用技术。
  • 传统方法学中内聚性好的模块独立性高,但数据和程序彼此独立,实际上重用性差。
  • 面向对象的软件技术中的对象具有很强的自含性,对象所固有的封装性和信息隐藏机理,使得对象的内部实现和外界隔离,具有较强的独立性。

4)较易开发大型软件产品

  • 开发大型软件系统时,开发人员的组织方法不当是出现问题的主要原因。面向对象范型开发软件时,可以把一个大型软件产品看作一系列本质上相互独立的小产品来处理。一方面降低了技术难度,另一方面改善了管理工作。

5)可维护性好:

  • 面向对象的软件稳定性好;
  • 面向对象的软件比较容易修改;
  • 面向对象的软件比较容易理解;
  • 面向对象的软件易于测试和调试。

面向对象中的术语:

面向对象对象(Object-Oriented,OO)

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

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

面向对象编程(Object-Oriented Programming,OOP) 面向对象编程

原文地址:https://www.cnblogs.com/anlen/p/3599114.html