如何用C语言编写面向对象的程序
一般来说,我们认为C语言是一个面向过程的编程语言,而面向过程的开发思想面对复杂关系时,是不太好处理的,那么用C语言编写面向对象的程序是可行的吗。答案是肯定的。语言本身只是工具,如何使用工具是编程思想。本篇就粗略地思考一下如何使用C语言开发面向对象的程序。
什么是面向过程
面向过程(Process Oriented)的思想,就是更关注问题的解决步骤,将一个问题抽象成一个过程,按照结果问题的过程中的各个步骤,用函数将问题解决。
什么是面向对象
面向对象(Object Oriented),先要解释什么是对象。
对象
对象可以理解为一个物体,面向对象的方法就是要将所有问题/实物对象化,而抽象出来的对象 = 属性 + 方法
属性
对象的特征即为属性,可以理解为对象的一些静态特征。
方法
对象可以做什么,有什么能力,就是方法,可以理解为对象的一些动态特征。
面向对象的核心思想
面向对象的核心思想,也是面向对象的三大特征,即封装、继承和多态。
封装
利用抽象数据类型将数据和基于数据的操作封装在一起,使其构成一个不可分割的独立实体。数据被保护在抽象数据类型的内部,尽可能地隐藏内部的细节,只保留一些对外的接口使其与外部发生联系。用户无需关心对象内部的细节,但可以通过对象对外提供的接口来访问该对象。
简单来说,就是将数据抽象化,包装在数据结构内,对外只提供访问接口,不暴露实现的细节。
其优点是:减少耦合,提高可重用性,隐藏细节。
继承
继承是使用已存在的类的定义作为基础建立新类的技术,新类的定义可以增加新的数据或新的功能,也可以用父类的功能,但不能选择性地继承父类。子类是父类的一个子集。
多态
多态指在程序设计中存在同名不同方法的存在,主要通过子类对父类的覆盖来实现多态,设计原则之一就是要依赖于抽象,而不依赖于具体,增加灵活性。多态就是为了体现这一原则。