浅谈python的面向对象原理

一,定义类
类,就是对一类事物的总称。类的具体表现被称为对象,也叫实例。(例如:汽车---->宝马)
我们可以自定义类,即创建一种新的 数据类型!

在这里插入图片描述
在这里插入图片描述

二,创建对象
类是一类事物的总称,要把它具体化,就要通过例子表达出来。这个过程被称为创建对象(对象也叫实例哦),也叫类的实例化!

在这里插入图片描述

三,实例变量(‘对象的变量’)
对象个体特有的‘数据’,如狗狗的名称,年龄这些。

在这里插入图片描述

四,构造方法(构造函数)
类中的__init__()方法是一种特殊的函数,用以创建和初始化实例变量。这就是‘构造方法’。在定义__init__()方法时,它的第一个参数必须是self,调用构造方法时不需要传入self参数。之后的参数用来初始化实例变量。
在这里插入图片描述

五,实例方法:在类中定义的函数(实例函数)
实例方法和实例变量一样,都是某个实例(对象)特有的方法。
定义实例方法时,第一个参数应该是self,它可以将当前对象和该方法绑定起来。这也说明该函数属于实例,调用该函数时,不需要传入值。(类似构造方法)
在这里插入图片描述

六,类变量
属于类的变量,不属于单个对象。
假设有一个银行账户类(account),有三个成员变量。账户金额(amount),账户名(owner)和利率(rate)。账户金额和账户名对于每一个银行账户来说都是不同的,而利率对每一个银行账户来说都是一样的!因此账户金额和账户名属于实例变量,而利率则是所有实例账户所共享的,属于类,归为’类变量’。
在这里插入图片描述

七,类方法
类方法和类变量相似,属于类而不属于个体实例。在定义类方法时,第一个参数不是self,而是类本身(名字)。
注意:类方法可以访问类变量和其它类方法,但不能访问实例方法和实例变量。
在这里插入图片描述

八,封装性
面向对象的重要特征之一。隐藏对象的内部细节,仅保留对外的接口,使用起来变得简单。就像使用计算机,不用了解内部的复杂结构,只需要知道使用鼠标,显示屏这些就足够

A封装性:私有变量
为了防止外部使用者随意存取类的内部数据(成员变量),内部数据会被封装为’私有变量’。外部调用者只能通过方法调用私有变量。
一般情况下,变量是公有的。使用者可以在类的外部使用它们。在变量前加上双下划线,即可使其变为私有变量。

在这里插入图片描述

B封装性:私有方法
私有方法和私有变量用法类似,都是在前面加双下划线。在类的外部不可以访问私有方法。

在这里插入图片描述
在这里插入图片描述

C封装性:使用属性(set和get方法)
外部调用者只能通过方法调用私有变量。
在这里插入图片描述

-----------使用属性方式修改上面的代码,更加合理------------------------

九,继承性
继承性是面向对象的重要特征之一。例如动物是一般类,称为父类;猫是特殊类。被称为子类。特殊类拥有一般类的全部数据和操作。这个也叫子类继承父类。
A继承性:继承
声明子类继承父类很简单,只需要在定义子类时在括号里写入父类的名字即可。子类继承父类时,只有公有的成员变量和方法才能被继承!

在这里插入图片描述
在这里插入图片描述

B继承性:多继承
一个子类是否有多个父类?其它编程语言不支持继承多父类,但是python可以!Python中子类在继承父类时也有优先级别。总体来说,优先继承左边的父类。例如,子类A(父类B,父类C):子类A优先继承父类B.

在这里插入图片描述
在这里插入图片描述

C继承性:方法重写(Override)
如果子类的方法和父类的方法名一样,那么子类的方法会重写(Override)父类的方法名。即以子类的方法为主,重写=覆盖。

在这里插入图片描述
在这里插入图片描述

十,多态性
多态性是面向对象的重要特征之一。多态指的是对象可以表现出多种形态。例如鸟,猫,狗子都是属于动物类。但他们叫的方式不同,动的方式也不一样,这就展现出了多态性!

A多态性:继承与多态
多个子类继承父类,并重写父类方法后,这些子类所创建的对象之间就是多态的。这些对象采用不同的方法实现父类方法。

在这里插入图片描述

B多态性:鸭子类型测试与多态
Python的多态性更加灵活,支持鸭子类型测试。鸭子类型测试是指:如果看到一只鸟走起路来像鸭子,游泳也像鸭子,叫声也像鸭子,那么这只鸟就可以被看成是一只鸭子。
因为支持鸭子类型测试,所以python解释器不检查发生多态的对象是否继承同一个父类。只要他们有相同的方法(行为),他们之间就是多态的。
在这里插入图片描述

十一,总结

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值