基本信息
文件名称:Ch09 面向对象的程序设计基础.pptx
文件大小:1.9 MB
总页数:26 页
更新时间:2025-06-05
总字数:约1.04万字
文档摘要

本章要点:第9章面向对象的程序设计基础面向对象的概念类对象和实例对象属性方法对象的特殊方法继承应用举例

9.1面向对象概念封装、继承和多态对象的定义某种事物的抽象(功能)抽象原则包括数据抽象和过程抽象两个方面数据抽象-定义对象属性;过程抽象-定义对象操作把客观事物抽象并封装成对象允许使用现有类的功能,并在无需重新改写原来的类的情况下,对这些功能进行扩展封装继承多态性:对象可以表示多个类型的能力

9.2类对象和实例对象类与对象的关系~车型设计和具体的车类的声明【例9.1】定义类Person1(Person1.py)classPerson1:#定义类Person1pass#类体为空语句#测试代码p1=Person1()#创建和使用类对象print(Person1,type(Person1),id(Person1))print(p1,type(p1),id(p1))对象的创建和使用【例9.2】实例对象的创建和使用示例c1=complex(1,2)c1.conjugate()#输出:(1-2j)(1-2j)c1.real#输出:1.01.0

9.3属性类中定义的成员变量实例属性通过self.变量名定义的属性【例9.3】定义类Person2。定义成员变量(域)classPerson2:#定义类Person2def__init__(self,name,age):#__init__方法self.name=name#初始化self.name,即成员变量name(域)self.age=age#初始化self.age,即成员变量age(域)defsay_hi(self):#定义类Person2的函数say_hi()print(您好,我叫,self.name)#在实例方法中通过self.name读取成员变量name(域)#测试代码p1=Person2(张三,25)#创建对象p1.say_hi()#调用对象的方法print(p1.age)#通过p1.age(obj1.变量名)读取成员变量age(域)

属性(2)类属性:类本身的变量【例9.4】定义类Person3。定义类域和类方法逻辑思维:以推理和演绎为特征,以数学学科为代表实验思维:以实验和验证为特征,以物理学科为代表计算思维:以设计和构造为特征,以计算机学科为代表classPerson3:count=0#定义属性count,表示计数name=Person#定义属性name,表示名称#测试代码Person3.count+=1#通过类名访问,将计数加1print(Person3.count)#类名访问,读取并显示类属性print(Person3.name)#类名访问,读取并显示类属性p1=Person3()#创建实例对象1p2=Person3()#创建实例对象2print((p1.name,p2.name))#通过实例对象访问,读取成员变量的值Person3.name=雇员#通过类名访问,设置类属性值print((p1.name,p2.name))#读取成员变量的值p1.name=员工#通过实例对象访问,设置实例对象成员变量的值print((p1.name,p2.name))#读取成员变量的值

私有属性和公有属性classA:__name=classA#私有类属性defget_name():print(A.__name)#在类方法中访问私有类属性#测试代码A.get_name()A.__name#导致错误,不能直接访问私有类属性两个下划线开头,但是不以两个下划线结束的属性是私有的(private),其他为公共的(public)【例9.5】私有属性示例(private.py)

特殊属性特殊属性(SpecialAttributes)Python对象中包含许多以双下画线开始和结束的方法,