Python-----第六章 类的课堂测试

1.面向对象程序设计着重于( B)的设计。

A.对象 B.类 C.算法 D.数据

2.面向对象程序设计中,把对象的属性和行为组织在同一个模块内的机制叫做(C )。

A.抽象 B.继承 C.封装 D.多态

3.在面向对象程序设计中,类通过(D )与外界发生关系。

A.对象 B.类 C.消息 D.接口

4.面向对象程序设计中,对象与对象之间的通信机制是(C )。

A.对象 B.类 C.消息 D.接口

7.关于类变量与实例变量,下列说法正确的是( ABCDE)。

A.包中必须包含__init__.py,包中的模块才能被调用。
B.实例变量是与实例对象绑定的变量,只有创建了实例对象后,实例变量才有意义。
C.实例变量是在类方法中定义的,通常是在__init__()方法中定义。
D.实例变量也可以在其他非__init__()方法中定义。
E.实例变量还可以在实例对象创建后,动态的创建。

答案:ABCDE

8.关于属性,下列说法正确的是( ABCD)。

A.数据成员也称为属性,分为公有属性和私有属性。
B.为了不破坏类的封装性,可以采用@property修饰器,来访问私有属性,检查属性。
C.@property装饰器是一个特殊的属性,它负责把一个方法变成属性来调用。
D.Setter该装饰器允许对已用@property装饰的属性(函数)赋值,但是setter装饰器必须在property的后面,且两个被修饰的属性(函数)名称必须保持一致。

答案:ABCD

9.判断:私有成员在类的外部不能直接访问,一般是在类的内部进行访问和操作。通过一种特殊方式“对象名._类名__xxx”也可以在外部程序中访问私有成员,但这会破坏类的封装性,不建议这样做。

答案:对

10.设计一个简单的购房商贷月供计算器类,按照以下公式计算总利息和每月还款金额:

总利息=贷款金额*利率
每月还款金额 = (贷款金额+总利息)/贷款年限
贷款年限不同利率也不同,这里规定只有如下表所示的3种年限、利率。
年限 利率
3年(36个月) 6.03%
5年(60个月) 6.12%
20年(240个月) 4.39%

class LoanCaculator():
    def __init__(self, loan, time):
        self.loan = loan
        if time == "1":
            self.time = 3
        elif time == "2":
            self.time = 5
        elif time == "3":
            self.time = 20
    def get_total_interests(self):
        return self.loan * self.get_interests_rate()
    def get_interests_rate(self):
        if self.time == 3:
            return 0.0603
        elif self.time == 5:
            return 0.0612
        elif self.time == 20:
            return 0.0639
    def get_monthly_payment(self):
        return (self.loan + self.get_total_interests())/ (self.time * 12)

                                  

loan = int(input("请输入贷款金额:"))
time = input("请选择贷款年限:1.3年(36个月) 2.5年(60个月) 3.20年(240个月)")
loan_caculate = LoanCaculator(loan, time)
print("月供为: %f" % loan_caculate.get_monthly_payment())

运行结果:
请输入贷款金额:10000

请选择贷款年限:1.3年(36个月) 2.5年(60个月) 3.20年(240个月)3
月供为: 44.329167

11.设计Bird、fish类,都继承自Animal类,实现其方法print_info(),输出信息。

class Animal():
    def __init__(self,age):
        self.age = age
    def print_info(self):
        print("我今年%d岁了!" % (self.age))
class Bird(Animal):
    def __init__(self, color):
        super().__init__(4)
        self.color = color
    def print_info(self):
        print("我是一只%s的鸟" % (self.color))
        super().print_info()
class Fish(Animal):
    def __init__(self, weight):
        super().__init__(2)
        self.weight = weight
    def print_info(self):
        print("我是一只%d斤重的鱼" % (self.weight))
        super().print_info()
bird = Bird("红色")
bird.print_info()
fish =Fish(5)
fish.print_info()

运行结果:
我是一只红色的鸟
我今年4岁了!
我是一只5斤重的鱼
我今年2岁了!

12.利用多态性,编程创建一个手机类Phones,定义打电话方法call()。创建两个子类:苹果手机类iPhone和Android手机类APhone,并在各自类中重写方法call。创建一个人类Person,定义使用手机打电话的方法use_phone_call()

class Phone():
    def call(self):
        print("使用功能机打电话")
class IPhone(Phone):
    def call(self):
        print("使用苹果手机打电话")
class APhone(Phone):
    def call(self):
        print("使用安卓手机打电话")
class Person():
    def use_phone_call(self, phone):
        phone.call()
person = Person()
person.use_phone_call(Phone())
person.use_phone_call(IPhone())
person.use_phone_call(APhone())

运行结果:
使用功能机打电话
使用苹果手机打电话
使用安卓手机打电话

发布了27 篇原创文章 · 获赞 3 · 访问量 1416

猜你喜欢

转载自blog.csdn.net/weixin_41860600/article/details/105485281