走入职场之后,需要用到的C语言能力还是跟自我学习的时候有很大区别,最直接的就是编程方法从面向过程转变为面向对象,目的是为了去更好地调用和隐藏,下面是自己的一些学习理解。
面向对象编程(OOP)
全称(Object Oriented Programming),其实这种方法并不是属于C语言的特性,但是可以使用技巧去实现。OPP的核心思想是将数据和操作数据的方法绑定在一起,形成一种独立的实体,也就是所谓的“对象”。那么首先就要明确什么是对象。
什么是对象
简单来说,对象就是一类事物的个体,比如:人、动物、家具.....,所谓类就是类型,即分类,类别,按照需要将事物进行合理的分类,比如,对象是李雷和韩梅梅,这时可以分类成人;对象是李雷和赵雷,此时类型定义为男人也是ok的。
面向对象编程的四大特征
-
抽象(Abstraction):简单理解:对事物进行抽象,分为抽象属性(一类事物的共同特征)和抽象行为(一类事物的共同行为)。比如,李雷和韩梅梅,他们的共同属性如:体重,身高,姓名,性别.......,他们的共同行为如:说话,走路,看星星.......
-
封装(Encapsulation):封装是把抽象出来的属性和行为组合起来,封装为一个类(结构体),隐藏对象的内部状态和实现细节,只提供公共接口供外部调用。这样可以保护对象的内部数据,防止被外部代码随意修改,同时提高代码的可重用性和安全性。
-
继承(Inheritance):继承允许创建一个派生类(子类)来继承现有基类类(父类)的属性和方法。子类可以复用父类的代码,同时还可以添加新的属性和方法,或者覆盖父类中的方法。这有助于代码的重用和扩展。
-
多态(Polymorphism):在父子对象之间可以发生多态性为,当有父类指针指向子类对象的时候,调用父类行为会调用子类行为,并对同一消息做出不同行为。在面向对象编程中,多态通常通过方法重载(Overloading)和方法覆盖(Overriding)来实现。多态提高了代码的灵活性和可扩展性。
面向对象编程的优点
- 代码重用:通过继承和封装,可以重用已有的代码,减少重复编写代码的工作量。
- 模块化:面向对象编程有助于将复杂的问题分解为更小、更易于管理的部分,提高了代码的模块化程度。
- 易于维护:封装和抽象使得代码更易于理解和维护,因为内部实现细节被隐藏,外部代码只需要关注接口。
- 灵活性和扩展性:多态和继承提供了灵活的代码结构,使得在不修改现有代码的情况下,可以轻松地添加新的功能或行为。
范例
待更新