目录

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) 把小时加num​add_minute(self,num) 把分钟加num​add_second(self,num) 把秒数加num​重写 __str(self)__ ⽅方法,返回格式化的时间字符串串: "04:16:09"

中级

1.请写⼀个小游戏,人狗大站, 2个⻆⾊,⼈和狗,游戏开始后,⽣成2个人, 3条狗,互相混战,人被狗咬了会掉血,狗被人打了也掉血,狗和人的攻击力,具备的功能都不⼀样。

继承_月隐学python第16课相关推荐

  1. python编程基础_月隐学python第2课

    python编程基础_月隐学python第2课 学习目标 掌握变量的输入和输出 掌握数据类型的基本概念 掌握算数运算 1.变量的输入和输出 1.1 变量输入 使用input输入 input用于输入数据 ...

  2. 字典与集合_月隐学python第8课

    一.字典 字典属于无序列,元素存放无序,是通过哈希方式进行数据存取的,字典是一个可变容器,字典中保存一个的键值对: key : value.我们通过key来获取对应的值,很类似我们的汉语字典. 字典中 ...

  3. 多态_月隐学python第18课

    目录 1.多态 2.其它 2.1 类的信息 2.2 对象信息 2.3 常⽤函数 1.多态 其他语⾔中所谓多态,指的是⼀个⽅法多种实现,在继承前提下,⽗类规定了⼦类的接⼝,使得可以相同的⽅式调⽤⼦类的⽅ ...

  4. 类成员_月隐学python第17课

    目录 1.类成员 2 实例成员的动态绑定 3. 系统魔术⽅法 3.1 __init__ 和 __new__ 3.2 算数运算符重载 3.3 迭代器 3.4 __call__ 4.单例设计模式 4.1. ...

  5. 类和对象_月隐学python第15课

    目录 1 ⾯向对象的思想 2. 类和对象 2.1 类和对象的概念 2.2 类的定义​ 2.3 成员⽅法 2.4 对象的创建 2.5 成员属性 3 构造和析构 3.1 构造⽅法 3.2 析构⽅法 3.3 ...

  6. 函数进阶_月隐学python第11课

    目录 1.函数类型 2. 匿名函数 3.传入函数(理解) 4.闭包 5.偏函数 6.变量的作用域 6.1 变量作用域的分类 6.2 变量作⽤域查找规则 6.3 全局变量和局部变量 6.4 global ...

  7. 字符串_月隐学python第7课

    一.字符串 字符串就是由若干个不同的unicode字符组成的不可变序列 1 .字符串创建 2.获取字符 因为是不可变序列,所以不能修改单个字符: 凡是修改字符串的操作都产生新串 3.字符串转义 常⻅转 ...

  8. 列表_月隐学python第6课

    在python中,有这样一些类型,它们的成员是有序排列的,并且可以通过下标访问成员,这些类型称之为有序序列,包括:列表.元组和字符串:其中列表的成员可修改,属于可变序列,字符串和元组,成员不可修改,属 ...

  9. 数据类型和运算符_月隐学python第3课

    1.类型判断 我们可以使⽤用type来返回数据类型和⽤用isinstance判断数据类型 2. 运算符和表达式 在数学上为了了计算结果,我们会写⼀一些式⼦子计算,例例如: 30 + 5 这是数学中的算 ...

最新文章

  1. Java的注释(详细版)
  2. 30天敏捷结果(19):你在为谁做事?
  3. Winform中实现实时颜色拾取器显示RGB和16进制颜色(附代码下载)
  4. java里的daosupport_HibernateDaoSupport与JdbcDaoSupport
  5. Java冒泡实现类Collections.sort()
  6. linux系统原理是什么意思,Linux系统原理之整体概述
  7. C# 依赖注入那些事儿
  8. 如何格式化电脑_计算机格式化的方法教程
  9. GB/T 28181-2016与GB/T 28181-2011变更对比
  10. 材料模拟计算机,材料计算机模拟技术
  11. Python3 可变对象VS不可变对象、 对象的赋值、深拷贝VS浅拷贝
  12. 【Vue.$delete】 删除
  13. ceph 删除 osd
  14. django慢学日常
  15. 江苏高中考计算机,【江苏985录取率】_各省高考985录取率排名,江苏最让人“心疼”,倒数第二...
  16. WEB开发(2) Servlet
  17. Data truncation: Data too long for column ‘xxx‘
  18. Codeforeces——69A Young Physicist
  19. linux查看网络流量 命令,linux查看流量命令
  20. leetcode643. 子数组最大平均数 I

热门文章

  1. SAP UI5 ResponsiveGridLayout
  2. Android studio如何连接三星手机
  3. WebIDE sandbox
  4. 处理SAP Netweaver gateway service使用过程中遇到的404 error
  5. 如何启用nodejs request模块的调试模式
  6. Daimler CRM中间件 inbound 调试
  7. Font support in Adobe form
  8. 如何分析IBASE对应的icon无法正常显示的问题
  9. Java Thread pool的学习笔记
  10. 在Chrome console里修改Vue界面元素,更新如何刷新回UI?