python笔记之面向对象

目录

一、面向对象(OOP--Object Oriented Programming)

二、面对对象的三大特征

1、封装

2、继承

3、多态

三、函数重载(overload)


一、面向对象(OOP--Object Oriented Programming)

——把解决问题的事物分为多个对象 ,对象具备解决问题过程中的行为

        面向对象编程有两个非常重要的概念:类和对象

        对象是面向对象编程的核心,具有相似特征和行为的事物的集合统称为类(class)。对象是根据类创建的,一个类可以对应多个对象

二、面对对象的三大特征

1、封装

        ——把客观事物抽象并封装成对象(将某些部分隐藏起来,在程序外部看不到,无法调用)

为了安全考虑,往往需要将对象的属性就行私有化,提供对应的访问方式 ,即封装。

封装离不开私有化,私有化是指将某个对象限定在某个自己认定的范围内

私有化的方法:将准备私有化的属性对象前面加双下划线__

如属性name--> __name,方法eat --> __eat

get和set方法:

将属性私有化后,可以提供公开的get和set方法。来合法的访问和修改私有化的属性

python中,如果使用_来修饰属性或者成员、变量。表示该属性不能被其他模块使用!!!

 

2、继承

        ——解决代码复用问题

面向对象中,类与类之间也存在着一种继承关系。

被继承的类:父类、超类(super class)、基类

继承类:子类

当子类继承父类时,该子类会自动的继承父类中能被继承的成员

私有的类成员,无法被子类继承。

python中,若子类存在初始化函数,一定要在有效代码的第一行首先手动调用父类的初始化

在python,可以实现多继承,通过逗号,可以实现多继承。

class 类名称([父类1 [, 父类2……]]):
    pass

3、多态

——在继承的基础上,父类引用指向子类实例的现象,被称为多态

python天生支持多态,时刻体现着多态

List		# 线性表 总类

ArrayList	# 基于数组实现的一个线性表  ArrayList 继承了 List
    
ArrayList  ls = new   ArrayList();		// 创建一个ls对象

# 可以使用多态实现
List ls = new  ArrayList();

三、函数重载(overload)

存在多个同名称的函数,函数名称相同,参数的个数或者类型不同,从而在调用时,会自动调用对应方法的这种现象,叫做函数重载。

python是弱数据类型编程语言,所以不存在函数重载!!!

最终,只能保留最后一个同名称函数。

如果一定要实现重载,则可以通过装饰器等手段想办法实现

函数重载(overload)、函数重写(overwrite)、函数覆盖(override)的区别

函数重载(overload):函数名称相同的一批函数,函数的参数和类型不同,从而引起调用时,会调用对应函数的现象。

函数重写(overwrite)|函数覆盖(override):在继承的基础上,如果子类继承了父类的某些或者某一个方法,发现某一个方法难以满足自身使用时,就会重写这个方法。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/560271.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【MATLAB基础绘图第21棒】绘制比例弦图 (Chord Diagram)

MATLAB绘制比例弦图 Chord Diagram 1 简介1.1 弦图简介1.2 比例弦图简介 2 MATLAB绘制比例弦图2.1 数据准备2.2 基本绘制2.3 添加方向箭头2.4 添加绘图间隙2.5 添加刻度2.6 修改标签2.7 颜色设置2.8 弧块及弦属性设置2.8.1 弧块属性设置2.8.2 弦属性设置 2.9 字体设置 参考 1 简…

python数据分析pyecharts【饼状图、直方图、词云、地图】

目录 饼状图 直方图 词云 地图 饼状图 from pyecharts.charts import Pie from pyecharts import options as optsdata {神农架林区: 2.6016,恩施州: 3.0729,十堰市: 3.4300,宜昌市: 3.4555,襄阳市: 4.0543,咸宁市: 4.1145,荆门市: 4.1777,潜江市: 4.2574,黄冈市: 4.40…

C++智能指针(二十)

一.RAII(Resource Acquisition Is Initialization) RAII资源获取即初始化,RAII的思想就是在构造时初始化资源,或者托管已经构造的资源。在析构的时候释放资源。一般不允许复制或赋值,并且提供若干的资源访问的方法。比…

OpenHarmony其他工具类—lua

简介 Lua是一种功能强大、高效、轻量级、可嵌入的脚本语言。 支持过程编程、面向对象编程、函数编程、数据驱动编程和数据描述。 下载安装 直接在OpenHarmony-SIG仓中搜索lua并下载。 使用说明 以OpenHarmony 3.1 Beta的rk3568版本为例 将下载的lua库代码存在以下路径&#…

C# 将 TextBox 绑定为 KindEditor 富文本

目录 关于 KindEditor 绑定设计 部署 KindEditor 实现代码 小结 关于 KindEditor KindEditor 基于JavaScript 编写,可以与众多WEB应用程序结合。KindEditor 依靠出色的用户体验和领先的技术提供富文本编辑功能,是一款非常受欢迎的HTML在线编辑器。…

【FreeRTOS】使用CubeMX快速移植FreeRTOS工程到蓝桥杯开发板(STM32G431RBT6)

使用CubeMX快速创建FreeRTOS工程到蓝桥杯开发板(STM32G431RBT6) CubeMX配置CubeMX基础工程的配置☆FreeRTOS相关配置FreeRTOS配置选项卡的解释 软件工程架构与程序设计小综合:☆任务的创建删除、挂起与恢复设计cubexMX配置创建任务软件程序设…

高频前端面试题汇总之JavaScript篇(上)

一、数据类型 1. JavaScript有哪些数据类型,它们的区别? JavaScript共有八种数据类型,分别是 Undefined、Null、Boolean、Number、String、Object、Symbol、BigInt。 其中 Symbol 和 BigInt 是ES6 中新增的数据类型: Symbol 代…

关于 Windows10 计算机丢失 MSVCP120.dll 的解决方法

今天学长跟平时一样打开电脑开始发布文章需要用到Adobe Photoshop CC 2018的时候居然给我来个Photoshop.exe-系统错误、无法启动此程序,因为计算机中丢失MSVCP120.dll 尝试重新安装该程序以解决此问题,安装上面的说明重新安装了我的Photoshop CC 打开还是…

关于CAS

什么是CAS: CAS:Compare And Swap,比较且交换。 CAS中有三个参数:1.内存中原数据的值V 2.预期值A 3.修改后的数据B Compare:V与A会先比较是否一样 Swap:如果V与A一致,那么就将B写入V 返回操作是否成功 伪代码&…

椋鸟数据结构笔记#10:排序·中

文章目录 四、归并排序时间复杂度实现递归实现非递归实现 测试稳定性 五、非比较排序5.1 计数排序时间复杂度实现测试局限性 5.2 桶排序时间复杂度实现测试 5.3 基数排序时间复杂度实现测试局限性 萌新的学习笔记,写错了恳请斧正。 四、归并排序 归并排序是一种非常…

微服务使用SockJs+Stomp实现Websocket 前后端实例 | Vuex形式断开重连、跨域等等问题踩坑(一)

大家好,我是程序员大猩猩。 之前几篇文章,我们讲了Spring Cloud Gateway的轻量级实现,Nginx的配置概念与实现,如以下往期文章。 轻量级的Spring Cloud Gateway实践,实现api和websocket转发轻松实现Nginx的HTTP与WebS…

新产品成功的七大关键要素:理论解析与案例探讨

在激烈的市场竞争中,新产品的成功推出不仅关乎企业的生死存亡,更是企业持续发展的核心动力。那么,新产品如何能够脱颖而出,赢得市场的青睐呢?本文将深入探讨新产品成功的七大关键要素,并结合实际案例进行解…

中颖51芯片学习8. ADC模数转换

中颖51芯片学习8. ADC模数转换 一、ADC工作原理简介1. 概念2. ADC实现方式3. 基准电压 二、中颖芯片ADC功能介绍1. 中颖芯片ADC特性2. ADC触发源(1)**软件触发**(2)**TIMER4定时器触发**(3)**外部中断2触发…

洛谷P1057 [NOIP2008 普及组] 传球游戏

#include<iostream> using namespace std; int n;// n个人传球游戏 默认开始球在编号为1的位置 int m;// 传递m次球 int main(){cin>>n>>m;// 动态转方程&#xff1a;// 球传递到编号为k人的手中// 种类总数 传递到k-1编号种类总数 传递到k1编号种类总数//…

如何查看微信公众号发布文章的主图,如何看微信文章的主图,怎么才能拿到主图

如何查看&#xff0c;微信公众号发布文章的主图&#xff0c;如何看微信文章的主图 起因是这样的&#xff0c;当我看到一篇文章的时候&#xff0c;他的主图很漂亮&#xff0c;但是&#xff0c;正文里没有&#xff0c;而我又想看到&#xff0c;并且使用这张图片&#xff0c;该怎么…

代码随想录训练营Day 27|Python|Leetcode|122.买卖股票的最佳时机II ● 55. 跳跃游戏 ● 45.跳跃游戏II

122.买卖股票的最佳时机II 给你一个整数数组 prices &#xff0c;其中 prices[i] 表示某支股票第 i 天的价格。 在每一天&#xff0c;你可以决定是否购买和/或出售股票。你在任何时候 最多 只能持有 一股 股票。你也可以先购买&#xff0c;然后在 同一天 出售。 返回 你能获…

同旺科技 USB TO SPI / I2C适配器读写24LC256--页写

所需设备&#xff1a; 1、USB 转 SPI I2C 适配器&#xff1b;内附链接 2、24LC256芯片 适应于同旺科技 USB TO SPI / I2C适配器升级版、专业版&#xff1b; 从00地址开始写入64个字节&#xff0c;然后再将64个字节读回&#xff1b; 页写时序&#xff1a; 读时序&#xff1a…

easyx库的介绍

前言 如果想要摆脱黑窗口的限制那么easyx图形库是一个好的选择 easyx的初认识 easyx是针对c的图形库&#xff0c;可以帮助c/c上手图形和游戏编程 所以要用easyx必须要用.cpp的后缀 1 easyx的原理 window的图形编程&#xff0c;最终都由window的底层API来实现 2 easyx的颜色 …

【Java笔记】第4章:深入学习循环结构

前言1. 循环的理解2. while循环3. do...while循环4. for循环5. 循环的控制语句6. 循环的嵌套结语 ↓ 上期回顾: 【Java笔记】第3章&#xff1a;深入学习分支结构 个人主页&#xff1a;C_GUIQU 归属专栏&#xff1a;【Java学习】 ↑ 前言 各位小伙伴大家好&#xff01;上期小编…

Mac下删除旧版本.net sdk

参照微软官网给的方法,Releases dotnet/cli-lab (github.com) 好像不能直接的解决问题,我做一下补充,希望对需要删除旧版本sdk的小伙伴们有所帮助 1:下载工具包 Releases dotnet/cli-lab (github.com) 2:打开终端,cd切换到该文件的制定目录 3:然后按照提示一步步执行…
最新文章