第036讲:类和对象:给大家介绍对象 | 课后测试题及答案

测试题:

0. 对象中的属性和方法,在编程中实际是什么?

答:变量(属性)和函数(方法)。

1. 类和对象是什么关系呢?

答:类和对象的关系就如同模具和用这个模具制作出的物品之间的关系。一个类为它的全部对象给出了一个统一的定义,而他的每个对象则是符合这种定义的一个实体,因此类和对象的关系就是抽象和具体的关系。

2. 如果我们定义了一个猫类,那你能想象出由“猫”类实例化的对象有哪些?

答:叮当猫,咖啡猫,Tom(Tom&Jerry),Kitty(Hello Kitty)……

3. 类的定义有些时候或许不那么“拟物”,有时候会抽象一些,例如我们定义一个矩形类,那你会为此添加哪些属性和方法呢?

答:属性可以是长和宽,方法可以是计算周长、面积等。

4. 类的属性定义应该尽可能抽象还是尽可能具体?

答:正确的做法是应该尽可能的抽象,因为这样更符合面向对象的思维。

5. 请用一句话概括面向对象的几个特征?

封装
继承
多态

封装 对外部隐藏对象的工作细节
继承 子类自动共享父类之间数据和方法的机制
多态 可以对不同类的对象调用相同的方法,产生不同的结果

6. 函数和方法有什么区别?

答:细心的童鞋会发现,方法跟函数其实几乎完全一样,但有一点区别是方法默认有一个 self 参数,这个参数是什么意思?请听下一讲详细分解。

动动手:

0. 按照以下提示尝试定义一个 Person 类并生成类实例对象。

属性:姓名(默认姓名为“小甲鱼”)
方法:打印姓名
提示:方法中对属性的引用形式需加上 self,如 self.name

class Person:
    def __init__(self, name='小甲鱼'):
        self.name = name

    def print_name(self):
        print(f"name : {self.name}.")


a = Person()
a.print_name()

b = Person('黑夜')
b.print_name()

小甲鱼代码:

class Person:
    name = '小甲鱼'
    
    def printName(self):
       print(self.name)


1. 按照以下提示尝试定义一个矩形类并生成类实例对象。

属性:长和宽
方法:设置长和宽 -> setRect(self),获得长和宽 -> getRect(self),获得面积 -> getArea(self)
提示:方法中对属性的引用形式需加上 self,如 self.width

Alt

class Rectangle:
    def __init__(self, length=5.00, width=4.00):
        self.length = length
        self.width = width

    def getRect(self):
        print(f"矩形的长是{self.length:.2f},宽是{self.width:.2f}.")

    def setRect(self):
        print(f"请输入矩形的长和宽...")
        l = input("长:")
        w = input("宽:")
        self.length = float(l)
        self.width = float(w)

    def getArea(self):
        self.area = self.length * self.width
        print(f"{self.area}")


rect = Rectangle()
rect.getRect()
rect.setRect()
rect.getRect()
rect.getArea()

小甲鱼代码

class Rectangle:
    length = 5
    width = 4
    
    def setRect(self):
        print("请输入矩形的长和宽...")
        self.length = float(input('长:'))
        self.width = float(input('宽:'))

    def getRect(self):
        print('这个矩形的长是:%.2f,宽是:%.2f' % (self.length, self.width))
        
    def getArea(self):
        return self.length * self.width

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值