继承_月隐学python第16课
目录
1.封装
1.1 属性私有化
1.2 属性装饰器
1.3 成员⽅法私有化
2.继承
2.1 单继承
2.2 多继承(理解、了解)
3.类成员
作业
初级
中级
⾯向对象三⼤特征:封装、继承、多态
1.封装
隐藏对象的属性和实现细节,仅对外公开接⼝,控制在程序中属性的读取和修改的访问级别。
类本身就是⼀种封装,通过类可以将数据(属性)和⾏为(⽅法)相结合,形成⼀个有机的整体,也就是将数据与对数据的操作有机的结合。封装的⽬的是增强安全性和简化编程,使⽤者不必了解具体的实现细节,⽽只是要通过外部接⼝,以特定的访问权限来使⽤类的成员。成员私有化是实现封装的⼿段。所有的成员默认是公有。
1.1 属性私有化
如果想让类的内部属性不被外界直接访问,可以在这个属性的前⾯加两个下划线__,在Python中,如果⼀个属性的前⾯出现 __,就表示这个属性只能在当前类的⽅法中被直接访问,不能通过对象直接访问,这个变量就被称为私有变量
1.2 属性装饰器
对于私有属性的访问,使⽤公开⽅法间接访问的⽅法太麻烦, python提供了⼀种便捷语法,属性装饰器,通过属性装饰器,可以很⽅便的对私有属性进访问,属性修饰器可以把⽅法属性化。
1.3 成员⽅法私有化
如果对⼀个⽅法的名字前⾯加__,声明该⽅法为私有⽅法,只能在当前类中被调⽤,在外界不能通过对象直接调⽤,这就是私有⽅法
2.继承
⾯向对象编程 (OOP) 语⾔的⼀个主要功能就是“继承”,所谓继承就是使现有的类⽆需编码便可以拥有原有类的⽅法和属性。
被继承的类可以称之为⽗类、基类、超类。继承的类可以称之为⼦类、派⽣类。派⽣和继承是⼀体两⾯,从⽗类向⼦类看就是派⽣,从⼦类向⽗类看就是继承。⼦类和⽗类的关系可以⽤“is a”类表示,即⼦类是⽗类的⼀种,是⼀个更具体、更加强⼤的⽗类。 python⽀持单继承和多继承。
继承的优点:
- 可以简化代码,减少冗余度
- 提⾼了代码的可维护性
- 提⾼了代码的安全性
2.1 单继承
所谓的单继承就是⼀个⼦类只有⼀个⽗类。⼦类会继承⽗类所有的属性和⽅法。
- 私有成员在⼦类中⽆法直接使⽤
- ⼦类对象⽆法直接使⽤继承⾃⽗类的私有成员
- ⼦类⽅法和⽗类⽅法重名,通过⼦类对象调⽤的是⼦类⽅法
注意: object是Python中所有类的⽗类【⼀般情况下,如果⼀个类没有指明的⽗类,默认它的⽗类为object】
- 构造函数的继承
- ⽅法的改写
- ⽅法添加
2.2 多继承(理解、了解)
⼀个⼦类可以有多个⽗类。语法:
3.类成员
类成员包括:类属性和类⽅法,不同于成员属性和成员⽅法属于对象,类属性和类⽅法属于类,可以不实例化对象,直接通过类名调⽤,这些类成员为所有对象共有,⼀般⽤于对象间通信。
在程序运⾏期间类属性始终存在
类属性
类⽅法和静态⽅法
- 类⽅法属于类,为所有对象共有,可以通过类名或对象调⽤
- 类⽅法可以⽤来访问类属性
- 静态⽅法属于类的作⽤域内的全局函数
- 类⽅法和静态⽅法的区别,类⽅法第⼀个参数是类对象,由系统传⼊,静态⽅法没有
- 共同点:静态⽅法和类⽅法都可以通过类名直接调⽤,属于类,不属于对象
作业
初级
1.刘凯买了一台玫瑰红phone10,价值8000元,可以打电话、玩游戏
2.写一个计算器器类,可以进行加、减、乘、除计算
3.设计两个类:
- 一个点类,属性包括xy坐标。
- 一个Rectangle类(矩形) ,属性有左上⻆和右下角的坐标,可以计算矩形的面积;可以判断点是否在正方形内
实例化一个点,⼀个正方形,输出正⽅形的⾯积,输出点是否在正方形内
4.定义一个Time类,成员属性包括:时、分、秒;成员⽅方法:
add_hour(self,num) 把小时加numadd_minute(self,num) 把分钟加numadd_second(self,num) 把秒数加num重写 __str(self)__ ⽅方法,返回格式化的时间字符串串: "04:16:09"
中级
1.请写⼀个小游戏,人狗大站, 2个⻆⾊,⼈和狗,游戏开始后,⽣成2个人, 3条狗,互相混战,人被狗咬了会掉血,狗被人打了也掉血,狗和人的攻击力,具备的功能都不⼀样。
继承_月隐学python第16课相关推荐
- python编程基础_月隐学python第2课
python编程基础_月隐学python第2课 学习目标 掌握变量的输入和输出 掌握数据类型的基本概念 掌握算数运算 1.变量的输入和输出 1.1 变量输入 使用input输入 input用于输入数据 ...
- 字典与集合_月隐学python第8课
一.字典 字典属于无序列,元素存放无序,是通过哈希方式进行数据存取的,字典是一个可变容器,字典中保存一个的键值对: key : value.我们通过key来获取对应的值,很类似我们的汉语字典. 字典中 ...
- 多态_月隐学python第18课
目录 1.多态 2.其它 2.1 类的信息 2.2 对象信息 2.3 常⽤函数 1.多态 其他语⾔中所谓多态,指的是⼀个⽅法多种实现,在继承前提下,⽗类规定了⼦类的接⼝,使得可以相同的⽅式调⽤⼦类的⽅ ...
- 类成员_月隐学python第17课
目录 1.类成员 2 实例成员的动态绑定 3. 系统魔术⽅法 3.1 __init__ 和 __new__ 3.2 算数运算符重载 3.3 迭代器 3.4 __call__ 4.单例设计模式 4.1. ...
- 类和对象_月隐学python第15课
目录 1 ⾯向对象的思想 2. 类和对象 2.1 类和对象的概念 2.2 类的定义 2.3 成员⽅法 2.4 对象的创建 2.5 成员属性 3 构造和析构 3.1 构造⽅法 3.2 析构⽅法 3.3 ...
- 函数进阶_月隐学python第11课
目录 1.函数类型 2. 匿名函数 3.传入函数(理解) 4.闭包 5.偏函数 6.变量的作用域 6.1 变量作用域的分类 6.2 变量作⽤域查找规则 6.3 全局变量和局部变量 6.4 global ...
- 字符串_月隐学python第7课
一.字符串 字符串就是由若干个不同的unicode字符组成的不可变序列 1 .字符串创建 2.获取字符 因为是不可变序列,所以不能修改单个字符: 凡是修改字符串的操作都产生新串 3.字符串转义 常⻅转 ...
- 列表_月隐学python第6课
在python中,有这样一些类型,它们的成员是有序排列的,并且可以通过下标访问成员,这些类型称之为有序序列,包括:列表.元组和字符串:其中列表的成员可修改,属于可变序列,字符串和元组,成员不可修改,属 ...
- 数据类型和运算符_月隐学python第3课
1.类型判断 我们可以使⽤用type来返回数据类型和⽤用isinstance判断数据类型 2. 运算符和表达式 在数学上为了了计算结果,我们会写⼀一些式⼦子计算,例例如: 30 + 5 这是数学中的算 ...
最新文章
- Java的注释(详细版)
- 30天敏捷结果(19):你在为谁做事?
- Winform中实现实时颜色拾取器显示RGB和16进制颜色(附代码下载)
- java里的daosupport_HibernateDaoSupport与JdbcDaoSupport
- Java冒泡实现类Collections.sort()
- linux系统原理是什么意思,Linux系统原理之整体概述
- C# 依赖注入那些事儿
- 如何格式化电脑_计算机格式化的方法教程
- GB/T 28181-2016与GB/T 28181-2011变更对比
- 材料模拟计算机,材料计算机模拟技术
- Python3 可变对象VS不可变对象、 对象的赋值、深拷贝VS浅拷贝
- 【Vue.$delete】 删除
- ceph 删除 osd
- django慢学日常
- 江苏高中考计算机,【江苏985录取率】_各省高考985录取率排名,江苏最让人“心疼”,倒数第二...
- WEB开发(2) Servlet
- Data truncation: Data too long for column ‘xxx‘
- Codeforeces——69A Young Physicist
- linux查看网络流量 命令,linux查看流量命令
- leetcode643. 子数组最大平均数 I