一.面向对象概念:根据模板(创建一个类)并实例化 这个思路就叫面向对象

二.使用面向对象编程好处:

  1. 可以重复使用(实例化类)
  2. 容易修改(只用修改类的模板)

三.面向对象的特点:

  1. 封装
  2. 继承
  3. 多态
  4. 类名首个字母必须大写
  5. 案例:类
    class Deom():
    #成员变量
    name = None #闹钟名字
    #成员方法
    def user(self):
    print(f'我是闹钟{self.name},功能:嘀嘀嘀嘀嘀嘀 起床啦') #闹钟功能

    实例化:

    #创建一个实例
    haha = Deom()
    #给闹钟赋值起个名字
    haha.name ='我是闹钟1'
    #调用闹钟的方法
    haha.user()

二.1将生活中的实物 创建一个类并实例化类 就叫封装 (概念)

创建类 + 实例化类 也叫封装

2.面向对象有一个私有方法:

定义一个函数 在函数名前面加上 __函数

作用:只能在函数内使用

案例:

# 根据图纸来设计一个英雄
class Demo ():def __init__(self, name, type):self.name = nameself.type = typedef __name(self):return  (f'我是{self.name}, 我是{self.type}')def func(self, funcdata):print(f'我调用一下私有方法', self.__name())print(f'技能是:{funcdata}')英雄 = Demo('混沌', '神兽')
英雄.func('八凶神火')

# 私有属性 只能在类的内部访问 外部不能访问
# 方法:写函数在变量前加__ 就成私有的了
# 写函数没有加__ 就是公开方法
# 函数名随便取
# self 可拿到成员属性

2.2什么是继承

1.什么是继承?

从字面上来讲:儿子继承父亲的基因和财产 子承父业

在我们类中什么叫继承?:子类继承父类的成员属性 和 成员方法

如果说子类想继承父类 就把父类的名字写到子类函数名的括号中

继承:不管公有还是私有 都会被继承

案例:

# 写一个类 父类
# 汽车 1代汽车 2代汽车 3代汽车 4代汽车
class Demo():# 初始化def __init__(self, name, typename, money, color, ml):# 汽车的名字self.name = name# 汽车的类型self.typename = typename# 汽车的价格self.money = money# 汽车的颜色self.color = color# 汽车的发动机self.ml = ml# 私有方法 __ 算出汽车的一个最大马力 105 不要管 这个算术准不准 自己知道 别人 私有方法def __user(self):# 计算发动机最大马力return self.ml * 105# 公有方法def func(self):# 拿到最大的马力 并 赋值给aa = self.__user()print(f'汽车的最大马力{a},目前正在马路上狂奔')# 图纸已经设计完了 只需要通过这个图纸批量造汽车
汽车 = Demo('一代奔驰','轿车', 10000, '红色' ,1.5)汽车.func()# 我们通过这个汽车的案例 来讲一下继承
# 有个客户说  你这个汽车 是不是设计的太漏野了点 你能不能进行升级
# 如果说 需要对类进行一个功能添加的话 这个我们就可以使用继承# 子类 如果说子类想继承父类 就把父类的名字写到子类函数名的括号中
class Demo2(Demo):# 原基础上添加一个新的功能def func2(self):print('升起尾翼飘逸')# 实例化子类 一定也要把父类的参数带上 继承我们父类的属性和方法
第二代汽车 = Demo2('奔驰2代', '轿车', 10000, '白色' ,2.0)# 如果访问父类的属性和方法 我们父类的方法可以被字类调用
第二代汽车.func()
# 也可以使用 最新的功能
第二代汽车.func2()

2.3什么是多态?

多种状态,即完成某个行为时,使用不同的对象会得到不同的状态。

应用场景:1.继承 2.类型判断 3Duck typing 4.编译器设计 5.GUI 开发

案例:

# 多态
# 父类
class A:# 定义了一个方法 公有方法def sound(self):print('我是父类a')# 子类 在子类函数名中 加入父类的名字
class Cat(A):# 定义了一个方法 公有方法def sound(self):print('我是字类Cat, 喵喵喵')# 子类 在子类函数名中 加入父类的名字
class Dog(A):# 定义了一个方法 公有方法def sound(self):print('我是子类Dog, 汪汪汪')# 实例化三个类
A = A()
cat = Cat()
dog = Dog()# 看一件神奇的事情 函数的名字admin
def admin(x):# x就是这个类 类中有一个方法叫soundx.sound()admin(cat)
admin(dog)
admin(A)
# 这样一个过程就叫多态
# 我们在调用函数的时候 传入不同的类 可以输出不同的结果 多态 了解
# 抽象 多写

实战案例(开发的应用场景)

模拟一个应用场景:

模拟银行账户:使用类来模拟银行账户,每个账户可以存款、取款、查询余额等操作

案例:

# 模拟银行账户:使用类来模拟银行账户,每个账户可以存款、取款、查询余额等操作
# 因为很多人都要来查询账户 余额 存款 取款
# 很多人 以面向对象的编程思路 来写这个案例
class Demo():# 初始化类def __init__(self, value, money):# 卡号self.value = value# 余额self.money = money# 存钱def func(self, data=0):# 拿到我们的余额 加上 我们要存的钱数self.money += dataprint('存钱成功')# 查询当前余额def func2(self):print(f'你当前的账户余额为:{self.money}')# 取钱 设置一个默认值 如果说没有传参 就不会报错def func3(self,data=0):# 如果说 当前账户余额 小于 你要取钱的金额 你就不能取if self.money < data:print('你当前账户余额不足')else:# 拿当前的余额 减去 取钱的金额dataself.money -= dataprint('取款成功')# 实例化一个类
林青山 = Demo('123458594', 2000)张三 = Demo('123456', 100000)
# 查询余额
张三.func2()李四 = Demo('45678995',200)
# 查询余额
李四.func2()
# 存款
李四.func(200)

第九课(面向对象):封装 继承 多态相关推荐

  1. 大数据笔记8—java基础篇4(面向对象-封装-继承-多态)

    面向对象 一.面向对象 1.面向过程 1.2.举例 1.3.总结 二.面向对象 1.简述 2.举例 3.思想特点 2.1.类的定义格式 2.1.1.简述 2.2.2.格式 2.3.3.示例 三.类的使 ...

  2. 面向对象封装继承多态五大基本原则魔法方法反射

    目录 面向对象 三大基本特征 五大基本原则 魔法方法 反射 面向对象 什么是面向对象 使用模板的思想,将世界万事万物使用对象来表示一个类型 面向对象和面向过程的区别: 面向对象的不就是使用程序处理事情 ...

  3. (十)Core Java 面向对象(封装,继承,多态,接口) -02 (96)

     目录 :        24 ). 面向对象(聚集关系) 25 ). 面向对象(子父类中变量的特点) 26 ). 面向对象(子父类中函数的特点-覆盖) 27 ).  面向对象(子父类中构造函数的特点 ...

  4. 猜丁壳(面向对象 封装 继承 多态)

    创建三个包: util包中的Constans是用来存储常量的: util包中的MyUtil是用来存储工具类的: service包中的Player定义玩家的共同属性及方法: service包中的Comp ...

  5. c语言编程 菲薄拉,C语言设计模式-封装-继承-多态

    快过年了,手头的工作慢慢也就少了,所以,研究技术的时间就多了很多时间,前些天在CSDN一博客看到有大牛在讨论C的设计模式,正好看到了,我也有兴趣转发,修改,研究一下. 记得读大学的时候,老师就告诉我们 ...

  6. python多态的三种表现形式_python小结----面向对象的三大特征(封装,继承,多态)

    面向对象的三大特征: 封装,继承,多态 面向对象的编程思想核心:高类聚,低耦合–程序的设计模式范畴 封装 什么是封装: 在面向对象编程的思想中,对代码进行高度封装,封装又叫包装 封装就是指将数据或者函 ...

  7. python 参数类型的多态_【Python】面向对象:类与对象\封装\继承\多态

    六.Python面向对象--类与对象\封装\继承\多态 1.什么是面向对象编程 1.1 程序设计的范式:程序可控,易于理解 1.2 抽象并建立对象模型 1.3 程序是不同对象相互调用的逻辑.每个对象在 ...

  8. python--编写程序:实现乐手弹奏乐器,乐手可以弹奏不同的乐器而发出不同的声音------使用类的封装继承多态的问题/使用面向对象的思想,设计自定义类,描述出租车和家用轿车的信息

    编写程序:实现乐手弹奏乐器,乐手可以弹奏不同的乐器而发出不同的声音 ------使用类的封装继承多态的问题 class Instrumnet():#乐器类def make_sound(self):pa ...

  9. Day55-每日一道Java面试题-Java 面向对象编程三大特性: 封装 继承 多态

    Java 面向对象编程三大特性: 封装 继承 多态 封装 封装把一个对象的属性私有化,同时提供一些可以被外界访问的属性的方法,如果属性不想被外界访问,我们大可不必提供方法给外界访问.但是如果一个类没有 ...

最新文章

  1. 多线程-synchronized锁
  2. Robot Framework(十七) 扩展RobotFramework框架——扩展Robot Framework Jar
  3. 面试官: 平时开发中你用过读写锁吗?
  4. 艾泰路由器设置虚拟服务器,艾泰路由器设置步骤
  5. Git—基础知识及常用命令(系列一)
  6. [Python] zip
  7. 13 年 29 款手机,从激进到求稳,iPhone 都经历什么?
  8. Linus Torvalds:未来 25 年,Linux 风采依旧!
  9. Krasovsky_1940_Albers投影介绍及转换
  10. 数据结构---最小生成树
  11. 斜度符号标注_机械图纸尺寸标注规则
  12. 使用ssh工具连接window虚拟机中的linux系统
  13. VS2008安装失败,组件安装失败的解决办法
  14. crmeb pro版获取短信验证码失败解决方法
  15. Android 版本统一管理
  16. 微信小程序开发中,图片报403问题(图片加载失败)解决办法
  17. Android12 (S) 获取wifi名称(SSID)的方法
  18. 如何建立有效的激励机制
  19. 内连接、外连接、全连接图示语法
  20. mysql stdistance_geometry和geography的区别

热门文章

  1. python 取余运算
  2. 如何自己动手编写漏洞POC
  3. plc模块灵活接线消除干扰
  4. 排序——选择排序(Selection sort)
  5. 把英雄分类,看 Python 带你上王者
  6. 黑马程序员,黑马论坛----黑马.Net7期,毕业121个工作日,就业率100%,平均薪水:6383元
  7. python实现一次指数平滑
  8. 星型结构 和 雪花型结构
  9. 微信跳转ticket生成规则,从浏览器跳转到微信
  10. GitHub存储库泄露了API令牌和加密密钥