文章插图
面向对象编程,Object Oriented Progamming,OOP 。
1、类和对象面向对象编程的两个重要概念:类(class)和对象(object) 。类是抽象的概念,对象是具体的东西 。
在面向对象编程的世界中,一切皆为对象,对象都有属性(数据)和行为(方法),每个对象都是独一无二的,而且对象一定属于某个类 。当把拥有共同特征的对象的静态特征(属性)和动态特征(行为)抽取出来之后,就可以定义出类 。
如汽车是一个类,它的属性包括最大速度、剩余油量等,它的方法可以有:加油、设定行驶速度等 。
文章插图
具体来说,一组数据结构和处理它们的方法的集合,称为类(class);类是具备某项功能的抽象模型,实际应用中,需要对类进行实例化,即为对象(object) 。
如汽车是一个类(class),具体到每辆不同车就是对象(object) 。
文章插图
2、面向过程和面向对象与面向对象编程相对的是面向过程编程,即把问题分解为一系列解题步骤,然后用函数实现这些步骤 。
- 面向过程的思想:由过程、步骤、函数组成,从上到下,从大到小,逐步细化,以过程为核心;
- 面向对象的思想:先开发类,再得到对象,通过对象之间的调用解决问题,以对象为中心 。
文章插图
比如开发一个五子棋游戏 。
面向过程的设计:首先分析解题步骤:开始游戏→黑子先走→绘制画面→判断输赢→轮到白子→绘制画面→判断输赢→返回步骤2,直到输出最后结果 。然后用函数实现上面每个步骤 。
面向对象的设计:整个五子棋可以设计为三个类:
- 玩家:黑白双方,这两方的行为是一样的;
- 棋盘:负责绘制画面;
- 规则:负责判定输赢 。
可以看出,面向对象是以功能来划分问题,而不是步骤 。
文章插图
3、面向对象编程的三大特点面向对象编程的三大特点:封装性、继承性和多态性 。
- 封装(encapsulation):就是将一个类的使用和实现分开,只保留有限接口与外部联系 。对于用到该类的程序员,不需关心这个类是如何实现的,只需知道如何使用 。即通过类的封装隐藏类的内部实现细节 。
- 继承(inheritance):就是派生类(子类)自动继承一个或多个基类(父类)的属性和方法,并可以重写或添加新的属性和方法 。
- 多态(polymorphism):就是调用成员函数时,会根据调用函数的对象的类型来执行不同的函数 。多态最常见的用法就是声明基类类型的指针,利用该指针指向任意一个子类对象,可以根据子类的不同而实现不同的方法 。通过多态实现基于对象类型的动态分派 。
文章插图
【面向对象编程OOP的基本概念】
推荐阅读
- spring框架之AOP面向切面编程
- WebAssembly 如何演进成为“浏览器第二编程语言”?
- 编程面试前需要解决的10个算法
- 「PHP编程」安装开发环境太烦?告诉你几个简单方法,分分钟搞定
- 抢鲜!阿里架构师私藏并发编程笔记,公开前半段秒获8K标星
- 人力资源管理|男孩尽量在大学里找对象,女孩到职场能找到更优秀的男人,啥感想
- GO语言 GUI编程 | 怎样实现 page 页面?
- CPU vs GPU,谁才是算力之王?
- 身份证|又一地事业单位面向辅警定向招录,辅警入编成为可能,机会来了
- Python GUI编程之Python GUI库综述