一、面向对象与OOD
让我们先联系一下生活中的对象:人、动物、植物、汽车、飞机、建筑物、计算机等等。人们通过对象来思考问题。甚至我们把平时谈朋友可以称为找对象。
基本上对象可以分为两类:活动的对象和非活动的对象。活动的对象是运动的,通过行为去完成某项任务。而非活动对象是不能有主动行为的。但是所有这些对象都有一些共同点:尺寸、颜色、长度、重量等属性(attribute),并具有一些行为(behavior),如汽车可以开动、转弯、刹车等;人会喜、怒、哀、乐、睡觉、说话等;开关可以打开、关闭,等等。
人们通过研究对象的属性、观察对象的行为而了解对象。不同对象可能有相似的属性和行为、如可以比较小孩和成人、比较成人和猩猩等。
如今,程序设计为了能和现实生活中的对象紧密结合,也模拟类似其特征的方式去用计算机语言描述一个对象,于是面向设计(OOD)诞生了。它利用类的关系、表示某个类的对象具有相同的属性,比如人类中的老人、中年人、青年人和小孩具有很多共同点。OOD利用继承关系从现有类派生新类,并在新类中增加独特的特征。例如,飞机类对象中运输机有一些战斗机的属性,但战斗机可以发射子弹、导弹。
面向对象设计可以更自然、更直观地浏览软件设计过程,即根据它们的属性、行为和相互关系建模对象。OOD还建模对象之间的通信,就像人与人之间可以互相说话传达想法一样。对象也可以通过消息互相通信。
OOD将属性和操作(行为)封装成对象、对象的属性与操作是密切联系的。对象具有信息隐藏属性,即对象间虽然通过良定义的接口能够互相通信,但该对象通常不知道其他对象的实现方法,因为实现细节隐藏在对象内部。比如,我们可以很好地驾驶汽车,但不需要知道发动机、传送系统、刹车系统和排气系统内部是如何工作的,你只需要知道如何使用加速板、刹车踏板和方向盘即可。信息隐藏技术在软件工程中非常的重要。
C#是面向对象的语言。用这类语言编程成为面向对象编程(OOP),程序员可以方便地用OOD实现可工作的系统。相反,C语言是过程式的语言,编程是面向行为的。在C语言中,编程单位是函数;在C#中,编程单位是类,通过类可以最终实例化(在OOP中称为“生成”)对象。C#的类包含方法(相当于C语言的函数),方法实现操作,而数据实现属性。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律