Linux与Python编程R实验 实验四 Python面向对象程序设计

一、实验目的与要求

(一)目的

面向对象程序设计的方法是从日常处理问题思路中形成的一种新的设计方法。通过了解对象、类、封装、继承、方法、构造函数和析构函数等面向对象的程序设计的基本概念,掌握Python类的定义、类的方法、类的继承等,为解决复杂现实问题,培养编程能力及工程应用技能,打下坚实的基础。

(二)要求

1.了解面向对象的程序设计思想
2.掌握Python对象、类、封装、继承、方法、构造函数和析构函数等.
3.掌握Python的类的继承与组合

二、实验内容与步骤

1.设计一个Circle类来表示园,这个类包含圆的半径以及求周长和面积的函数。再使用这个类创建半径为1~100的圆,并计算出相应的周长及面积。
2.编写程序并测试,有一个汽车类Vehicle,类中的私有数据成员为车轮个数wheels和车重weight;小车类Car是汽车类vehicle派生类,其中包含载客人数passenger_load,默认4人;卡车类Truck是汽车类vehicle派生类,其中包含载客人数passenger_load和载重量payload。
提示:编写类时要使用get和set方法,Vehicle类定义display()显示车轮和重量,Car和Truck中要对display()进行同名覆盖。
3.编写一个学生和教师数据输入和输出的程序。学生数据包括编号、姓名、班号、和成绩;教师的数据含有编号、姓名、职称和部门。要求设计一个person类,作为学生数据操作类student和教师数据操作类teacher的基类。

三、实验代码清单

class Circle:
    def __init__(self, radius):
        self.radius = radius

    def areas(self):
        return self.radius ** 2


c = Circle(16)
print(c.areas())
class Vehicle:
    def __init__(self, wheels, weight):
        self.__wheels = wheels
        self.__weight = weight

    def display(self):
        print('车轮个数为' + str(self.__wheels))
        print('车重为' + str(self.__weight))

    def set_wheels(self, wheels):
        self.__wheels = wheels

    def set_weight(self, weight):
        self.__weight = weight

    def get_wheels(self):
        return self.__wheels

    def get_weight(self):
        return self.__weight


class Car(Vehicle):
    def __init__(self, wheels, weight):
        self.__wheels = wheels
        self.__weight = weight
        self.__passenger_load = 4

    def display(self):
        print('车轮个数为:' + str(self.__wheels), end=',')
        print('车重为' + str(self.__weight), end=',')
        print('最大载客量为' + str(self.__passenger_load))

    def set_passenger_load(self):
        self.__passenger_load = 4

    def get_passenger_load(self):
        return self.__passenger_load


class Truck(Vehicle):
    def __init__(self, wheels, weight, passenger_load, payload):
        self.__wheels = wheels
        self.__weight = weight
        self.__passenger_load = passenger_load
        self.__payload = payload

    def display(self):
        print('车轮个数为:' + str(self.__wheels), end=',')
        print('车重为' + str(self.__weight), end=',')
        print('最大载客量为' + str(self.__passenger_load), end=',')
        print('最大载重量为' + str(self.__payload))

    def set_passenger_load(self, passenger_load):
        self.__passenger_load = passenger_load

    def set_payload(self, payload):
        self.__payload = payload

    def get_passenger_load(self):
        return self.__passenger_load

    def get_payload(self):
        return self.__payload


car = Car(4, '8t')
car.display()
car.set_weight('16t')
print('我的新体重为'+car.get_weight())

truck = Truck(12, '30t', 2, '15t')
truck.display()
class Person:
    def __init__(self, number, name):
        self._number = number
        self._name = name

    def set_number(self, number):
        sefl._number = number

    def set_name(self, name):
        self._name = name

    def get_number(self):
        return self._number

    def get_name(self):
        return self._name

    def display(self):
        print('编号:' + str(self._number), end=',')
        print('姓名:' + str(self._name), end=',')


class Student(Person):
    def __init__(self, number, name, classNum, grade):
        Person.__init__(self, number, name)
        self._classNum = classNum
        self._grade = grade

    def set_classNum(self, classNum):
        self._classNum = classNum

    def set_grade(self, grade):
        self._grade = grade

    def get_classNum(self):
        return self._classNum

    def get_grade(self):
        return self._grade

    def display(self):
        print('编号:' + str(self._number), end=',')
        print('姓名:' + str(self._name), end=',')
        print('班级:' + str(self._classNum), end=',')
        print('成绩:' + str(self._grade))


class Teacher(Person):
    def __init__(self, number, name, title, department):
        Person.__init__(self, number, name)
        self._title = title
        self._department = department

    def set_title(self, title):
        self._title = title

    def set_department(self, department):
        self._department = department

    def get_title(self):
        return self._title

    def get_department(self):
        return self._department

    def display(self):
        print('编号:' + str(self._number), end=',')
        print('姓名:' + str(self._name), end=',')
        print('职称' + str(self._title), end=',')
        print('部门:' + str(self._department))


student = Student(111, '张三', '1班', '99分')
student.display()
student.set_classNum('2班')
print('我修改以后的班级是' + str(student.get_classNum()))

teacher = Teacher(222,'李四','教授','材料学院')
teacher.display()

四、实验运行结果

在这里插入图片描述

在这里插入图片描述

实验一 Linux系统安装与使用基础
实验二 Python程序运行方式和程序流程控制
实验三 Python函数

猜你喜欢

转载自blog.csdn.net/u014708644/article/details/121155547