面向对象的基础知识Python程序设计基础6.1面向对象的基础知识12对象与面向对象面向对象的程序设计3类3Python程序设计基础1、对象与面向对象程序是程序设计语言通过算法对变量(数据)、表达式、语句和函数这些元素进行组合实现复杂功能。程序设计方法有两个思路:①面向过程的程序设计②面向对象的程序设计③对象4Python程序设计基础(1)面向过程的程序设计面向过程是一种以事件为中心的编程思想,以功能(行为)为导向,按模块化的设计,就是分析出解决这个问题所须要的步骤,然后用函数把这些步骤一步一步实现,实现的时候一个一个依次调用就能够了。①数据和对数据的操作看作是分离的两件事情。②没有遵循人类观察问题和解决问题的基本思路。5Python程序设计基础(2)面向对象的程序设计面向对象方法的出发点和基本原则是模拟现实世界中人类的思维方式,使问题求解方法和过程尽可能地接近人类解决现实问题的方法和过程,把构成问题的事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个事物在整个解决问题的步骤中的行为。①数据和对数据的操作不可分离。②对象(object):将数据和操作两者结合在一起,抽象出的一种实体。6Python程序设计基础(3)对象现实世界中的任何事物都可以看成对象。对象将数据和操作两者结合在一起,抽象出的一种实体。对象拥有一些数据,同时也知道如何对这些数据进行操作。例如:“人”可视为“对象”:①每个人都具有自己的数据,如姓名、出生日期、身高、体重、学历、婚姻状况、教育经历、工作经历等;②每个人对他的数据都有自己的操作方法,例如通过计算当前日期与出生日期的差值来得到年龄、通过公式“标准体重=(身高-100)×0.9)”来判断自己是否超重等。③每个人都能响应外部发来的消息(如询问年龄的消息),也就是执行相应的数据操作。④“张三”和“李四”是两个不同对象,但如果他们具有共同的属性,,如学号、姓名、性别、身高、体重等。可以把他们的共同特性抽象出来,说他们是学生。程序设计的时候可以抽象出来一个“学生”的类。张三和李四分别是“学生”类的实例,是两个独立的对象。7Python程序设计基础2、类在面向对象的方法中,类的定义是:类是具有相同属性和服务功能的一组对象的集合,它为该类的全部对象提供了统一的抽象描述,其内部包括属性和服务两个主要部分。在面向对象的编程语言中,类是一个独立的程序单位,它应该有一个类名并包括属性(数据)定义和行为定义两个主要部分。①类与对象②类、属性和方法③类的三个特性8Python程序设计基础(1)类和对象类与对象的关系如同一个模具与用这个模具铸造出来的铸件之间的关系。类给出了属于该类的全部对象的抽象定义,而对象则是符合这种定义的一个实体。所以,一个对象又称作类的一个实例(Instance)。例如,张三是人、李四也是人,台式机是计算机、平板电脑也是计算机,桃树是树、杏树也是树9Python程序设计基础(2)类、属性和方法①具有同一类属性的物体的抽象就是一个类。例如,人(类)、计算机(类)、树(类)等等②类除了具有特定的属性,还具有特定的行为(方法)。例如,人的身高、性别、年龄。计算机的存储大小、运算速度,树的年龄、粗细、高度此外:人会吃饭,计算机会执行程序,树会光合作用③创造新的物种(类):将属性和方法封装在一起10Python程序设计基础(3)类的三个特性①封装性:封装有两个含义。第一个含义是,把对象的全部属性和全部行为结合在一起,形成一个不可分割的独立单位(即对象);第二个含义也称作“信息隐蔽”,即尽可能隐蔽对象的内部细节,对外形成一个边界(或者说形成一道屏障),只保留有限的对外接口使之与外部发生联系。②继承性:可以从现有的类出发,定义新类,新定义的类为子类。子类继承父类的变量和方法,并且另有自己的变量和方法。继承的好处是代码重用。③多态性:父类中定义的属性或行为被子类继承之后,可以具有不同的数据类型或表现不同的行为。这使得同一个属性或行为在父类及其各个子类中可以具有不同的语义。11Python程序设计基础例:学生类的继承与派生关系图学生留学生研究生大学生中学生小学生高中生初中生本科生专科生博士生硕士生12Python程序设计基础例:1.Animal类是一个父类,为子类提供共有的类属性。同时,定义一个抽象方法,形成接口。2.Cat和Dog两个子类,在继承Animal类的同时实现Animal类中的抽象方法。3.在主程序中定义一个函数,deffunc(obj)去调用抽象方法,即接口。,内容如下:13Python程序设计基础3、面向对象的程序设计类和对象是面向对象编程的两个主要方面:类创建一个新类型,而对象是这个类的实例。①类的定义②对象方法的定义③使用__init__方法④类与对象的示例14Python程序设计基础(1)类的定义在Python语言中,类使用class关键字创建。类的域和方法被列在一个缩进块中。创建一个类方法如下:15Python程序设计基础(2)对象方法的定义类可以拥有像函数一样的方法,这些方法与函数是作为类生成的对象所拥有的行为来使用的。使用对象的方法如下:运行结果:Hello,howareyou?我的名字叫小明16Python程序设计基础(3)使用__init__方法在Python语言中,类中有很多方法的名字具有特殊的重要意义。__init__方法在类的一个对象被建立时,马上运行。这个方法可以用来对对象做一些我们希望的初始化。注意,这个名称的开始和结尾都是双下划线。:运行结果:Hello,我的名字是小红17Python程序设计基础(4)类与对象的示例使用类与对象的变量例子如下:18Python程序设计基础思考1.面向对象的程序设计与面向过程的程序设计区别是什么?2.类和对象的本质区别是什么?3.属性和方法的本质区别是什么?每天进步一点