目录
本篇章内容帮助初学者快速了解面向对象。
什么是面向对象?
面向对象是一种编程思想。算法很重要,比算法更重要的是框架,比框架更重要的是编程思想。把具体的事物抽象化,通过这个事物的特征与其他事物区别开来。
究竟什么是对象?这既是一个复杂的问题,也是一个简单的问题。复杂是因为学习任何一种软件开发方法论都非易事,简单是因为人们已经在按对象的方式进行思考。
例如,当你看到一个人,你会把他看作一个对象。一个对象由两部分组成:属性及行为。人具有属性,比如眼睛颜色、年龄、身高等。人也具有行为,比如行走、说话、呼吸等。对象的基本定义是一个包含了属性和行为的实体。
在面向对象设计中,属性及行为包含在单个对象中,而在过程式或结构式设计中,属性和行为通常是分开的。这就是面向对象与过程式编程的不同之处。
面向过程编程
在刚开始学习labview时,我们知道了labview是一种图形化编程语言,通过连线以数据流的形式在每个函数节点进行值传递,以函数作为核心,顺序、循环和条件结构作为主体,任务逐级细化分别解决的设计方法。
比如要完成一个测量任务,在设计的时候,可以把这个任务分为几个过程:测量数据、转换数据、显示数据、保存数据等。主VI包含这几个过程的子VI,子VI又继续细分下一层级,比如测量数据又分为选择硬件设备,选择测量参数,设置硬件参数等。这就是面向过程的编程。
面向对象编程
面向对象设计的基本单位是类。面向对象设计渴望的结果是一个健壮实用的对象模型,换句话说就是一个完整的系统。
类
类是面向对象的最基本的结构,与其对应的概念是实例。,类指类型,而实例指具体的物。在面向对象中,我们通过定义类来编写程序。当程序运行时,从定义的类创建实例,通过它们之间的交互来实现软件的功能。这与在现实世界中,通过人与物的交互来完成工作的原理非常相似。
在labview中,我们可以新建一个类叫形状。以形状作为父类可以创建诸多子类,例如圆形,正方形,三角形等。他们都是形状,具备形状共同的一些属性和行为,属性比如周长,面积。行为比如画,分割等。
面向对象技术的目的是使软件的维护和重用变得更容易,其基本思想是重点关注各个构件,提高构件的独立性,将构件组合起来,实现系统整体的功能。通过提高构件的独立性,当发生修改时,能够使影响范围最小,在其他系统中也可以重用。
面向对象基本概念
面向对象的三大要素:封装、继承、多态
历史上定义拥有面向对象的语言拥有以下特性:封装(encapsulation)、继承(inheritance)和多态性(polymorphism)。如果设计一门语言时如果没有完全实现以上特性,那么通常我们认为该语言不是完全面向对象的。
·封装
把数据和行为封装到单个对象中是面向对象开发中的重中之重。单个对象既包含自身的数据,也包含自身的行为,并且可以向其他对象隐藏自身的某些东西。
·继承
一个类可以继承另一个类,并且可以使用父类中定义的属性和方法。
·多态性
多态性意味着相似的对象对相同的消息有着不同的响应。例如,你可能拥有一个有很多形状的系统。然而圆、正方形和星星的绘制方式不同。使用多态性你可以给这些形状发送相同的消息(例如draw方法),每个形状可以响应自身的绘制。
抽象
当你告诉某人画一个形状时,你被问到的第一个问题是:“什么形状?”没人能绘制一个形状,因为形状是一个抽象概念。