内容正文:
《Python应用程序设计》
5.1 面向对象基础
1
面向对象和面向过程的区别
1
面向对象的编程思想在考虑问题时,以具体的事务(对象)为单位,考虑它的属性(特性)及动作(行为),关注整体。 比如观察一个人,他有身高、体重、性别、出生日期等属性特征,以及会说话、走路等动作行为。常见的面向对象语言有Python、Java、C++等。
类与对象的关系
2
类:不存在的,是抽象的,它是具有相同属性和行为的一组对象的集合。
比如,“学生”这个类有相同属性:姓名,性别,年龄,学号,身份证号码等;“学生”这个类具有的行为:吃、喝、睡、学习...
对象:是现实生活中具体存在的事物,也叫实例。它可以是一个物理对象,还可以是某一类概念实体的实例。对象是面向对象的核心。
比如,一个叫“张劲”的学生是一个对象;
《Python语言程序设计基础》书也是对象。
类与对象
2
类是对某一类事物的抽象描述,而对象是现实中该类事物的个体。
类与对象的关系是:对象是类的实例,类是对象的模板。
比如学生是一个类,学生李明就是类中的一个对象。
类的三大特性--封装
2
类的三大特性:封装、继承、多态(对口高考必考)
封装:隐蔽对象的内部细节,只保留一些对外接口使之与外部发生联系。
封装的目的在于把对象的设计者和使用分开,使用者不必知晓行为实现的细节,只需用设计者对外提供的接口来访问该对象。如司机没有必要为了开车而去了解以汽油作为动力的内燃机引擎的工作原理。
类的三大特性--继承
2
1.继承反应客观世界中各类事物之间的一种”一般和特殊”的关系。
2.继承是指类之间有继承关系,子类有条件地继承父类的特征。
3.一个新类可以从现有的类中派生出来,这个过程称为类继承。
4.类的对象是各自封闭的,如果没继承机制,则类对象中的数据、方法就会出现大量重复。
5.继承不仅支持系统的可重用性,而且还促进系统的可扩充性。
类的三大特性--多态
2
1.对象的多态是指在一般类中定义的属性或操作被特殊类继承后,可以具有不同的数据类型或表现出不同的行为。
2.利用多态性,用户可以发送一个通用的信息,而将所有的实现细节都留给接收消息的对象自行决定。
{}同学,祝您{}岁生日快乐
张三同学,祝您18岁生日快乐
李四同学,祝您20岁生日快乐
创建类
2
Python定义一个类使用关键字class声明,类的声明格式如下:
class是关键字
类名为有效的标识符
命名规则一般为多个单词组成的名称,除每个单词的首字母大写外,其余字母均小写。如Person、Student、MyCar。注意类名后面有个冒号。
注意类名后面有个冒号:
在类体中,可以定义属性和方法,由缩进的语句块组成。
属性:描述事物的特征,类中的所有变量称为属性。如学生有学号、姓名、性别等
方法:描述事物的行为,类中的所有函数通常称为方法。如学生听课、做作业。
class 类名:
类体
创建类
2
举例如下:
class Person:
name='' #属性:姓名
age=0 #属性:年龄
def say(self): #说话的方法
print('我爱学习')
def eat(self): #吃饭的方法
print('今天的饭菜很给力')
创建对象
2
1.类是抽象的,必须实例化类才能使用类定义的功能,即创建类的对象
2.把类的定义视为数据结构的类型定义,那么实例化就是创建了一个这种类型的变量
3.对象的创建和调用格式如下:anObject= className()
例11-1 定义类Person,创建Person类的对象p,并打印p
class Person: #定义类Person
pass #类体为空语句
p=Person() #创建和使用对象p
print(p)
属性和数据
2
1.类的数据成员是在类中定义的成员变量,用来存储描述类的特征的值,称为属性。
2.属性可以被该类中定义的方法访问,也可以通过类或类的实例进行访问。
类属性是类的数据或函数,类的数据属性仅仅是所定义的类中的变量,它们可以像任何其他变量一样在类定义后被使用。
类属性
2
1.类属性属于整个类,不是特定实例的一部分,而是所有实例之间共享的一个副本。
2.类属性通常在类体中初始化,然后,在类定义的方法或外部代码中,通过类名访问
类变量名=初始值 #初始化类属性
类名.类变量名=值 #修改类属性的值
类名.变量名 #读取类属性的值
3.类属性的读、写访问都是通过“类名.”来实现的
【例11-2】定义Person类及其属性,利用类名访问类属性
cla