内容正文:
任务7.1 对象与类
电影对象的定义和使用
7.1 对象与类——电影对象的定义和使用
【任务描述】
优秀的影片 可以鼓舞人心,带给人积极向上的心态。小T酷爱看电影,他从某影评网站收集了几部评价较高、他也较感兴趣的国产电影信息(包括电影名、导演、主演等字段)。他打算一周之内把这几部电影看完,并在看完之后对每部影片进行评分。要求输出已看电影的评分、已看电影部数、已评电影的均分,并释放已看过的电影资源。
7.1 对象与类——电影对象的定义和使用
【任务分析】
我们可以构建电影类来完成本任务,思路如下:
(1)定义电影类,在类中定义相应的变量、方法,实现存储电影信息,计算电影评分等功能。
(2)把每部电影作为对象进行创建,创建的电影就是本周需要看的电影。
(3)每看完一部,就对电影进行评分、计算均分、输出信息并释放资源。
7.1 对象与类——电影对象的定义和使用
什么是类?
怎么定义类和对象?
怎么定义和使用类的变量与方法?
7.1.1 类的定义和使用
7.1.2 数据成员的访问
7.1.3 成员方法的调用
7.1.4 任务实现——电影对象的定义和使用
7.1 对象与类——电影对象的定义和使用
7.1.2 数据成员的访问
7.1.2 数据成员的访问
什么是数据成员?
如何定义?
如何访问?
1.数据成员的类别
数据成员,指的是用于处理类及其对象的相关数据。
数据成员按作用对象分,可分为类变量和成员变量。
类变量是用于描述类的特征或属性,成员变量则是描述类对象的特征或属性。
7.1.2 数据成员的访问
数据成员还有私有数据成员和公有数据成员之分。
私有数据成员以两个下划线“__”开头,但是不以两个下划线结束
私有数据成员一般在类的内部进行访问和操作,或者通过调用类对象来访问
1.数据成员的类别
7.1.2 数据成员的访问
【例7-6】有不同类别数据成员的类定义。
class Student():
stdCount=0 # 类变量,创建学生对象个数
def __init__(self,no,name,age): # 构造方法
self.__no=no # 私有成员变量,学生学号
self.__name=name # 私有成员变量,学生名字
self.__age=age # 私有成员变量,学生年龄
self.score=0 # 设置了默认值的公有成员变量,本门课成绩
if Student.stdCount>50: # 控制创建学生人数不超过50,用Student类名访问类变量
print("已超过学生人数。")
else:
Student.stdCount+=1
7.1.2 数据成员的访问
def setScore(self,score): # 成员方法,设置本门课成绩
self.score=score
def getInfo(self): # 成员方法,打印学生信息
print("%s同学的学号是%s,年龄是%d。"%(self.__name,self.__no,self.__age))
def __del__(self):
print("%s对象的资源已释放。"%self.name)
7.1.2 数据成员的访问
【例7-6】有不同类别数据成员的类定义。
2.数据成员的访问
数据成员中的成员变量,在类中定义和使用时都以self为前缀,同一个类中不同对象的成员变量互相不受影响。
公有数据成员的访问,通过对象名访问,使用对象名与成员变量名用“.”连接
私有数据成员在类的外部访问,则需通过对象名、类名共同作用下才可以访问。
对象名. 成员变量名
对象名._类名__变量名
7.1.2 数据成员的访问
【例7-7】数据成员的访问。
# 类定义见【例7-6】
student1=Student('190404101','韩梅梅',18)
student2=Student('190404102','李雷',19)
print("已创建了%s个Student对象。"%(student2.stdCount)) # 用student2对象名访问类变量
print("他们分别是%s/%s。"%(student1._Student__name,student2._Student__name)) #用对象名、类名访问私有成员变量
print("他们目前的成绩是%d/%d。"%(student1.score,student2.score)) #用对象名访问公有成员变量
已创建了2个Student对象。
他们分别是韩梅梅/李雷。
他们目前的成绩是0/0。
7.1.2 数据成员的访问
3.数据成员值的设置和修改
设置数据成员默认值:数据成员的初始值,可以在类的定义中直接设定默认值。
self.score=0
stdCount=0
修改数据成员值:一是通过访问数据成员,修改其数据值;二是通过调用相关的方法修改数据成员的值。
7.1.2 数据成员的访问
# 类定义见【例7-6】
student3=Student('190404104','吴磊',18)
student3.score=95 #访问数据成员score,修改其数据值
print("%s同学的学号是%s,年龄是%d岁,本门课成绩是%d分。"%(student1._Student__name,student1._Student__no, student1._Student__age,student3.score))
student3.setScore(92) #通过调用setScore方法修改score数据值
print("修改后本门课成绩是%d分。"%(student3.score))
韩梅梅同学的学号是190404101,年龄是18岁,本门课成绩是95分。
修改后本门课成绩是92分。
7.1.2 数据成员的访问
【例7-8】修改数据成员值。
即学即答:
Python中定义私有成员变量的方法是()。
A. 使用private关键字 B. 使用public关键字
C.使用__XX__定义 D.使用__XX定义
7.1.2 数据成员的访问
$$