第6章 面向对象编程.pptx
第6章面向对象编程-6.1类和对象-6.2类的继承和多态
第6章面向对象编程面向对象程序设计(ObjectOrienteProgramming,OOP)的思想主要针对大型软件设计而提出,使得软件设计更加灵活,能够很好地支持代码复用和设计复用,并且使得代码具有加好的町读件和町扩展性。面向对象稈序设计的一条基木原则是计算机程序由多个能够起到子程序作用的单元或对象组合而成,这大大地降低了软件开发的堆度,使得编程就像搭积木一样简单。面向对象程序设计的一个个关键性观念是将数据以及对数据的操作封装在一起,组成一个相互依存、不可分割的整体,即对象。对于相同类型的对象进行分类、抽象后.得出共同的特征而形成了类,面向对象程序设计的关键就是如何合理地定义和管理这些类以及类之间的关系。
第6章面向对象编程Python完全采用了面向对象程序设计的思想,是真正面向对象的脚本语言,完全支持面向对象的基本功能。本章重点将详细介绍Python面向对象编程相关知识,首先,介绍Python中的类提供了面向对象编程的所有基本功能;其次,介绍类的继承机制允许多个基类;派生类可以覆盖基类中的任何方法;最后,介绍方法中可以调用基类中的同名方法;对象可以包含任意数量和类型的数据。本章学习重点类和对象类的继承和多态多继承方法重载
6.1类和对象6.1.1定义和使用类类(Class)是用来描述具有相同属性和方法的对象的集合。Python使用class关键字来定义类,class保留字之后是一个空格,然后是类的名字,再然后是一个冒号,最后换行并定义类的内部实现。类名的首字母一般要大些,当然也可以按照自己的习惯定义类名,但是一般推荐参考惯例来命名,并在整个系统的设计和实现中保持风格一种,这一点对于团队合作尤其重要。类定义的简单形式如下:classclassName:#新式类必须有至少一个基类definfor(self):...statement-N:1.定义类
【例6-1】定义一个Person人员类。实例代码如下:#!/usr/bin/python3.8classclassName:Num=0#成员变量(属性)DefSayHello(self):#成员函数Print(“Hello!”);
(1)成员函数(成员方法):在Python中,函数和成员方法(成员函数)是有区别的。成员方法一般是指与特定实例绑定的函数,通过对象调用成员方法时,对象本身将被作为第一个参数传递过去,普通函数并不具备这个特点。在Person类中定义一个成员函数SayHello(self),用于输出字符串“Hello”。同样,Python使用缩进标识类的定义代码。
(2)self:可以看到,在成员函数SayHello()中有一个参数self。这也是类的成员函数(方法)与普通函数的主要区别。类的成员函数必须有一个参数self,而且位于参数列表的开头。self就是代表类的实例(对象)自身,可以使用self引用类中的属性和成员函数。在类的成员函数中访问实例属性时需要以self为前缀,但在外部通过对象名调用对象成员函数时并不需要传递这个参数。如果在外部通过类名调用对象成员函数则需要显示为self参数传值。在Person类中定义一个成员函数SayHello(self),用于输出字符串“Hello”。同样,Python使用缩进标识类的定义代码。
6.1类和对象6.1.1定义和使用类类对象支持两种操作:属性引用和实例化。对象是类的实例。如果人类是一个类,那么某个具体的人就是一个对象。只有定义了具体的对象,通过“对象名.成员”的方式来访问其中的数据成员或成员方法。Python创建对象的语法如下:对象名=类名()2.定义对象
【例6-2】定义一个类Person的对象p。实例代码如下:#!/usr/bin/python3.8p=Person()p.SayHello()#访问成员函数SayHello()以上程序运行结果为:Hello!
【例6-3】创建一个类将其赋值给实例对象。实例代码如下:#实例化类x=MyClass()#访问类的属性和方法print(MyClass类的属性i为:,x.i)print(MyClass类的方法f输出为:,x.f())以上程序运行结果为:MyClass类的属性i为:pythonMyClass类的方法f输出为:helloworld#!/usr/bin/python3.8classMyClass:一个简单的类实例