面向对象习题

作者: lvyz0207 | 来源:发表于2020-04-08 13:07 被阅读0次
    # 1.定义一个数学中的复数类 Complex,它有一个构造函数与一个显示函数,建立一个 Complex 对象并调用该显示函数显示。
    class Complex:
        def __init__(self, a):
            self.a = a
    
        def display(self):
            print(self.a)
    
    
    com = Complex("aaa")
    com.display()
    
    
    # 2.定义一个计算机类 MyComputer,它包含 CPU 类型(String 类型)、RAM 内存大小(Integer 类型)、HD 硬盘大小(Integer 类型),
    # 设计它的构造函数,并设计一个显示函数,建立一个 MyComputer 对象并调用该显示函数显示。
    class MyComputer:
        def __init__(self, CPU, RAM, HD):
            self.CPU = CPU
            self.RAM = RAM
            self.HD = HD
    
        def show(self):
            str1 = "cpu是{},RAM 内存大小是{}G,HD 硬盘大小是{}G".format(self.CPU, self.RAM, self.HD)
            print(str1)
    
    
    cpu = "8核32线程"
    RAM = 8
    HD = 500
    mc = MyComputer(cpu, RAM, HD)
    mc.show()
    
    
    # 3.设计一个整数类 MyInteger,它有一个整数变量,并有一个 Value 属性,可以通过为 Value 存取该变量的值,
    # 还有一个转二进制字符串的成员函数 toBin 及转十六进制字符串的成员函 数 toHex。
    class MyInteger:
        def __init__(self, num):
            self.num = num
    
        def Value(self):
            print(self.num)
    
        def toBin(self):
            print("转换为二进制为:", bin(self.num))
    
        def toHex(self):
            print("转换为十六进制为:", hex(self.num))
    
        def tootc(self):
            print("转换为八进制为:", oct(self.num))
    
    
    num = 789
    mi = MyInteger(num)
    mi.Value()
    mi.toBin()
    mi.toHex()
    mi.tootc()
    
    
    # 4. 建立一个普通人员类 Person,包含姓名(m_name)、性别(m_sex)、年龄(m_age)成员变量。
    # (1) 建立 Person 类,包含 Private 成员 m_name、m_sex、m_age 成员变量;
    # (2) 建立 Person 的构造函数;
    # (3) 建立一个显示过程 Show(),显示该对象的数据;
    # (4) 派生一个学生类 Student,增加班级(m_class),专业(m_major),设计这些类的构造函 数;
    # (5) 建立 m_class、m_major 对应的属性函数 sClass()、sMajor();
    # (6) 建立显示成员函数 Show(),显示该学生对象所有成员数据;
    class Person:
        def __init__(self, m_name, m_sex, m_age):
            self.__m_name = m_name
            self.__m_sex = m_sex
            self.__m_age = m_age
    
        def Show(self):
            print(self.__m_name, self.__m_sex, self.__m_age,end=" ")
    
    
    class Student(Person):
        def __init__(self, m_name, m_sex, m_age, m_class, m_major):
            # Person.__init__(self, m_name, m_sex, m_age)      # 普通方法调用
            super(Student,self).__init__(m_name, m_sex, m_age)  # 使用super方法调用父类 ——__init__
            self.__m_class, self.__m_major = m_class, m_major
    
        def sClass(self):
            print(self.__m_class)
    
        def sMajor(self):
            print(self.__m_major)
    
        def Show(self):
            # Person.Show(self)  # 普通方法调用
            super(Student, self).Show()     # 使用super方法调用父类 ——  Show方法
            print(self.__m_class, self.__m_major)
    
    
    stu = Student("张三", "男", "18", "高三", "理科")
    stu.Show()
    
    # 5. 建立一个时间类 Time,它包含时 hour,分 minute,秒 second 的实例属性
    # (1) 设计时间显示函数 show(self);
    # (2) 设计两个时间大小比较函数 compare(self,t),其中 t 是另外一个时间;
    class Time:
        def __init__(self,hour, minute, second):
            self.hour = hour
            self.minute = minute
            self.second = second
    
        def show(self):
            format_time = "{}:{}:{}".format(self.hour,self.minute,self.second)
            print(format_time)
    
        def compare(self):
            t = "23:45:07"
            t_time = t.split(":")
            t_hour = t_time[0]
            t_minute = t_time[1]
            t_second = t_time[2]
            t_seconds = int(t_hour) * 3600 + int(t_minute) * 60 + int(t_second)
            compare_sec = abs(t_seconds - (self.hour*3600 + self.minute*60 +self.second))
            compare_hour = compare_sec//3600
            compare_minute = (compare_sec%3600)//60
            compare_second = (compare_sec%3600)%60
            print("{}:{}:{}".format(compare_hour,compare_minute,compare_second))
    
    time = Time(12, 30, 1)
    time.show()
    time.compare()
    
    
    前行.png

    相关文章

      网友评论

        本文标题:面向对象习题

        本文链接:https://www.haomeiwen.com/subject/zrftmhtx.html