面向对象习题

# 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
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容