一、名词解释
- 类与对象:
类:
- 类名
- 类的属性
- 类的方法 :必含有参数:self
- 类:对一类具体事物的抽象概括,具有相似内部状态和运动规律的实体的集合,具有相同属性和行为
- 对象:一个具体的事物,可以直接使用 拥有:【数据成员:类变量和实例变量 】和【方法】
- 具有相同属性和行为的对象—>类
- init 方法有什么作用, 如何定义
- 该方法在类实例化时会自动调用
- __ init_ 方法中 做初始化的设定
- init() 方法可以有参数,参数通过 init() 传递到类的实例化操作上
- 方法中的"self"代表什么
- self 代表的是类的实例,代表当前对象的地址,而 self.class 则指向类
- 定义方法时,必须写上第一个参数,往往写成self去接收
- 在方法中,self 就可以直接被当做当前对象来使用
- 面向过程编程与面向对象编程的区别
- 面向过程是具体的东西,而且面向过程是面向对象的基础。
- 面向过程:复杂的问题流程化,简单化 应用场景:不在需要扩展了,监控脚本,自动部署脚本,软件解压安装
- 面向对象:特征与技能的结合体 一切皆对象 应用场景:用户需求经常变化,互联网应用,游戏,企业内部应用
- 面向对象三大特性,各有什么用处,说说你的理解
三大特性就是封装,继承,多态
- 封装:根据职责将属性和方法封装到一个抽象的类中,定义类的准则
- 继承:实现代码的重用,相同的代码不需要重复的编写,子类直接继承父类的所有属性和方法即可
- 多态:不同的子类对象调用相同的方法,产生不同的执行结果。
例如:在同一个方法,有两个子类对象,分别调用的时候有不同的结果
- 简单描述什么是重写
重写:发生在子类和父类之间,当子类继承父类中的方法时,子类中的方法与父类方法的名称,参数个数,参数类型完全一致时,称子类重写了父类的方法。
子类不想原封不动地继承父类的方法,而是想作一定的修改,这就需要采用方法的重写。方法重写又称方法覆盖。 - 当子类重写init方法,在实例化对象的时候,如果想要调用父类的init方法该怎么办?
父类名.init(self,参数) #注意名字是父类
super(子类名,self).init(参数) #注意名字是子类,而且init后是self之外的参数
二、编程题 - 编写Python程序,模拟简单的计算器。
定义名为Number的类,其中有两个整型数据成员n1和n2,应声明为私有。
编写__init__方法,外部接收n1和n2,再为该类定义加(addition)、
减(subtration)、乘(multiplication)、除(division)等成员方法,
分别对两个成员变量执行加、减、乘、除的运算。创建Number类的对象,
调用各个方法,并显示计算结果。
class Number():
def __init__ (self,n1,n2):
self.__n1=n1
self.__n2=n2
def addition(self):
m1=self.__n1+self.__n2
print('相加等于%d'%(m1))
def subtration(self):
m2=self.__n1-self.__n2
print('相减等于%d'