小甲鱼Python第036讲:类和对象:给大家介绍对象 | 课后测试题及参考答案
测试题:
0.对象中的属性和方法,在编程中实际是什么?
变量(属性)和函数(方法)
1.类和对象是什么关系呢?
类和对象的关系就如同模具和用这个模具制作出的物品之间的关系。一个类为它的全部对象给出了一个统一的定义,而他的对象则是符合这种定义的一个实体,因此类和对象的关系就是抽象和具体的关系。对象是类的实例化。
2.如果我们定义了一个猫类,那你能想象出由“猫”类实例化的对象有哪些?
叮当猫,Tom猫,Hello Kitty```````
3.类的定义有些时候或许不那么“拟物”,有时候会抽象一些,例如我们定义一个矩形类,那你会为此添加哪些属性和方法呢?
属性可以是长和宽,方法可以是计算周长、面积等
4.类的属性定义应该尽可能抽象还是尽可能具体?
正确的做法应该是尽可能抽象,因为这样更符合面向对象的思维。
5.请用一句话概括面向对象的几个特征?
封装:对外部隐藏对象的工作细节;
继承:子类自动共享父类之间数据和方法的机制;
多态:可以对不同类的对象调用相同的方法,产生不同的结果。
6.函数和方法有什么区别?
函数和方法几乎一样。主要有一点区别在于方法默认有一个self参数。
动动手:
0.按照以下提示尝试定义一个Person类并生成类实例对象。
属性:姓名(默认姓名为“小甲鱼”)
方法:打印姓名
提示:方法中对属性的引用形式需加上self,如self,name
实现代码:
1 class Person: 2 name = "小鲫鱼" 3 def getName(self,name): 4 print(self.name)
1.按照以下提示尝试定义一个矩阵类并生成类实例对象。
属性:长和宽
方法:设置长和宽->setRect(self),获得长和宽->getRect(self),获得面积->getArea(self)
提示:方法中对属性的引用形式需加上self,如self.width
程序截图:
实现代码:
1 class Rectangle: 2 length =float(5) 3 width = float(4) 4 5 def setRect(self): 6 temp = print("请输入矩阵的长和宽...") 7 self.length = float(input("长:")) 8 self.width = float(input("宽:")) 9 10 def getRect(self): 11 print("这个矩阵的长是:%.2f,宽是:%.2f" %(self.length,self.width)) 12 13 def getArea(self): 14 return self.length * self.width