zoukankan      html  css  js  c++  java
  • Python学习08_面向对象编程

    概念

    把一组数据结构和处理它们的方法组成对象(object),把相同行为的对象归纳为类(class),通过类的封装(encapsulation)隐藏内部细节,通过继承(inheritance)实现类的特化(specialization)和泛化(generalization),通过多态(polymorphism)实现基于对象类型的动态分派。

    程序中的数据和操作数据的函数是一个逻辑上的整体,我们称之为“对象”,而我们解决问题的方式就是创建出需要的对象并向对象发出各种各样的消息,多个对象的协同工作最终可以让我们构造出复杂的系统来解决现实中的问题。

    类和对象

    类是蓝图和模板,是抽象的无实体的,像一张设计图;对象则是类的实例,是有具体东西的,是根据设计图制造出来的实物。

    定义类

    python中使用关键字class关键字定义类。在类中通过函数方式定义方法,从而描述对象的特征。

    image-20210206012608725

    创建和使用对象

    当定义好一个类之后,可以通过下面的方式来创建对象并给对象发消息。

    image-20210216154855625

    访问可见性问题

    在python中,属性和方法的访问权限只有两种,即公开和私有的。如果希望属性是私有的,在属性命名时可以用两个下划线作为开头。

    在实际开发中,我们并不建议将属性设置为私有的,因为这会导致子类无法访问(后面会讲到)。所以大多数Python程序员会遵循一种命名惯例就是让属性名以单下划线开头来表示属性是受保护的,本类之外的代码在访问这样的属性时应该要保持慎重。这种做法并不是语法上的规则,单下划线开头的属性和方法外界仍然是可以访问的,所以更多的时候它是一种暗示或隐喻。

    面向对象的支柱

    三大支柱:封装、继承和多态。封装:隐藏细节,指向外界暴露编程接口。可以理解成这样,一个电子产品,他的电路板等等实现都被外壳隐藏了,而在外面我们只需通过一些按键即可操作,使用这个电子产品,这些个开关就是暴露出来的接口。uot;。我们在类中定义的方法其实就是把数据和对数据的操作封装起来了,在我们创建了对象之后,只需要给对象发送一个消息(调用方法)就可以执行方法中的代码,也就是说我们只需要知道方法的名字和传入的参数(方法的外部视图),而不需要知道方法内部的实现细节(方法的内部视图)。

    不积硅步,无以至千里。
  • 相关阅读:
    css变量
    es6的this指向
    Java面试题(包装类)
    moment笔记
    Class
    CSS斜切角
    Element.getBoundingClientRect()
    Do not mutate vuex store state outside mutation handlers.
    antd不想写那么多option怎么办
    解析URL参数
  • 原文地址:https://www.cnblogs.com/wyloving/p/14406806.html
Copyright © 2011-2022 走看看