面向对象的三大特征-封装

面向对象的三大特征

面向对象程序设计实际上就是对现实世界的对象进行建模操作。面向对象程序设计的特征主要可以概括为封装、继承和多态

  • 封装
    封装是面向对象程序设计的核心思想。它是指将对象的属性和行为封装起来,其载体就是类,类通常对客户隐藏其实现细节,这就是封装的思想。
  • 继承
    继承是面向对象程序设计提高重用性的重要措施。它体现了特殊类与一般类之间的关系,当特殊类包含了一般类的所有属性和行为,并且特殊类还可以有自己的属性和行为时,称作特殊类继承了一般类。一般类又称为父类或基类,特殊类又称为子类或派生类。
  • 多态
    多态是面向对象程序设计的重要特征。生活中也常存在多态,不同的人对同一事件产生了不同的行为,这就是多态在日常生活中的表现。程序中的多态是指一种行为对应着多种不同的实现。

封装

  • 类的封装可以隐藏类的实现细节,迫使用户只能通过方法去访问数据,这样就可以增强程序的安全性。接下来演示未使用封装可能出现的问题,如例所示。
    面向对象的三大特征-封装_第1张图片

  • 在例中,运行结果输出的成绩为-68,在程序中不会有任何问题,但在现实生活中明显是不合理的。为了避免这种不合理的情况,就需要用到封装,即不让使用者随意修改类的内部属性。

  • 在定义类时,可以将属性定义为私有属性,这样外界就不能随意修改。Python中通过在属性名前加两个下画线来表明私有属性,如例所示。
    面向对象的三大特征-封装_第2张图片
    在例中,self.name为公有属性,self.__score为私有属性。第8行试图修改私有属性的值。从程序运行结果可看出,私有属性的值并没有发生变化。

  • 当属性设置为私有属性后,经常需要提供设置或获取属性值的两个方法供外界使用,如例所示。
    面向对象的三大特征-封装_第3张图片

  • 此外,私有属性在类外不能直接访问,但程序在测试或调试环境中,可以通过“对象名._类名”的方式在类外访问,如例所示。
    面向对象的三大特征-封装_第4张图片

你可能感兴趣的:(笔记)