Dotcpp  >  编程教程  >  Python面向对象编程  >  Python面向对象编程

Python面向对象编程

点击打开在线编译器,边学边练

学过C++或者Java的同学一定了解过面向对象的相关内容,编程语言一般分为两种设计方式:面向对象面向过程,早期的编程语言多是面向过程的,由多个过程组合在一起,而Python在设计的时候就是一种面向对象的语言,因此在Python是面向对象的编程语言。本节我们先来了解一下面向对象编程的概念。

1. 对象

首先我们要学习一下什么是对象,对象的英文是‘Object’,我们的生活中到处都是对象,你面前的电脑、手中的手机或者是书架上的书等等都是对象,对象是一种实际存在的实体。

我们在学习对象的时候可以把对象看成两个部分,一部分称为属性,一部分称为行为

例如:我们买了一个闹钟,闹钟的材质是它的属性,当闹钟响起来的时候是它的行为。

2. 类

我们在前面学习过的数据类型都属于类,类是Python的基本构造,在类中包含很多方法,我们在学习类的时候可以把类理解为一个教室,当我们创建了一个教室的时候,我们规定这个教室需要学习语文、数学和英语,当一个学生加入这个班级,就需要学习这三门科目,类往往是我们定义的一个载体,类中的成员会具有相同的属性和行为。

我们可以把所有汽车看成一个类,也可以把所有飞机看成一个类,类是一种比较抽象的概念,我们在定义的时候要根据实际情况来定义。

面向对象编程有三大特点:封装、继承和多态。

3. 封装

关于封装,我们可以举生活中的例子来学习一下,首先我们先从字面意思思考一下,封装就是把东西封了起来,当我们买了一台音响,音箱内部存在电路板、线路等结构,而我们使用者不需要去知道他的内部结构和使用原理,所以这些结构被封闭在箱体内部,在箱体外提供一些接口供我们连接,这些在音箱内部的属于封装起来的东西。

我们在写程序的时候也可以采用封装的理念,对于一些内容我们不提供接口来使用它们,它们属于内部的构造,属于不可变的内容,这种内容即为封装。

4. 继承

提到继承,大家一般都会联想到遗产,我们如果拿遗产来形容继承的话,在现实生活中的遗产继承一般是单对单的,如果是单对多的形式,那么多个人获取到的遗产很有可能是不一致的,而我们在程序里的继承是一种完全继承的关系。

我们可以把车看为一个对象,然后不管是奔驰车还是宝马车又或者是大众车,这些车都继承了车的全部属性和行为。我们把车看成一个类,给车定义了在地面驾驶和4个轮胎的属性,那么当宝马车来继承这个类,宝马车就获得了在地面驾驶和4个轮胎的属性,如果我们给车定义了高速行驶的行为,那么宝马车也继承了它高速行驶的行为。

我们在使用继承关系的时候,我们把车称为‘超类’或者‘父类’,而继承而来的宝马车称为‘子类’或者‘派生类’。

5. 多态

多态就是一个父类有多个属性,根据这些属性而衍生了多个子类,我们继续拿车来举例,我们可以给车定义两个属性,一个在马路上行驶,一个是在轨道上行驶,而这两种属性又都包括可载人,那么我们在定义子类的继承的时候,就可以定义了两种子类,一种是可载人的但在马路上行驶的汽车,一种是可载人但在轨道上形式的汽车,这种一个类衍生出多个子类,他们有公共属性也有私有属性的方式称为多态。

6. 总结

关于类和对象这两种概念,在我们学习编程的时候至关重要,不管是计算机的任何行业,一定离不开类和对象的使用,多多使用生活中的例子去思考一下什么是类和对象,下一节我们来学习类的定义和使用。



知识点标签:类和对象


本文固定URL:https://www.dotcpp.com/course/264

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

Python教程
第一章 Python入门
第二章 Python基础语法
第三章 Python入门语法
第四章 Python核心语法
第五章 Python函数
第六章 Python面向对象编程
第七章 Python模块
第八章 Python异常处理和程序调试
第九章 Python文件及目录操作
第十章 PythonGUI编程
第十一章 Python进程和线程
第十二章 Python数据库管理
第十三章 Python算法
第十四章 Python爬虫
第十五章 Python实战项目
第十六章 后记
Dotcpp在线编译      (登录可减少运行等待时间)