编写一个Employee类,以保存其数据属性:员工姓名employeeName,员工编号employeeID;编写一个名为ProductionWorker类,该类是Employee类的子类。该ProductionWorker类应保存以下信息的数据属性:倒班代码shiftCode(一个整数,如1,2,或3),小时工资hourSalary。工作日分为两个班次,白天和晚上。班次属性将保存代表员工工作班次的整数值。白天班次为班次1,夜班班次为班次2。为每个类编写适当的访问器和赋值器方法。创建ProductionWorker类的对象,并提示用户输入每个对象属性的数据。将数据存储在对象上,然后使用对象的访问器方法来提取它,并将其输出显示在屏幕上。
时间: 2023-06-27 13:01:46 浏览: 258
数据库实验一
以下是一个可能的Employee类和ProductionWorker类的实现,包含访问器和赋值器方法,并按照要求提示用户输入数据并将其存储在对象上:
```python
class Employee:
def __init__(self, employeeName, employeeID):
self.__employeeName = employeeName
self.__employeeID = employeeID
def getEmployeeName(self):
return self.__employeeName
def setEmployeeName(self, employeeName):
self.__employeeName = employeeName
def getEmployeeID(self):
return self.__employeeID
def setEmployeeID(self, employeeID):
self.__employeeID = employeeID
class ProductionWorker(Employee):
def __init__(self, employeeName, employeeID):
super().__init__(employeeName, employeeID)
self.__shiftCode = 0
self.__hourSalary = 0.0
def getShiftCode(self):
return self.__shiftCode
def setShiftCode(self, shiftCode):
self.__shiftCode = shiftCode
def getHourSalary(self):
return self.__hourSalary
def setHourSalary(self, hourSalary):
self.__hourSalary = hourSalary
# 创建ProductionWorker对象并提示用户输入属性数据
pw = ProductionWorker(input("请输入员工姓名:"), input("请输入员工编号:"))
pw.setShiftCode(int(input("请输入倒班代码(1代表白天班,2代表夜班班):")))
pw.setHourSalary(float(input("请输入小时工资:")))
# 输出对象属性数据
print("员工姓名:", pw.getEmployeeName())
print("员工编号:", pw.getEmployeeID())
print("倒班代码:", pw.getShiftCode())
print("小时工资:", pw.getHourSalary())
```
注意到在ProductionWorker的构造函数中,我们调用了Employee类的构造函数,并传递了employeeName和employeeID参数。这是因为ProductionWorker是Employee的子类,因此在创建ProductionWorker对象时,必须先初始化其父类的属性。
在生产环境中,可能需要更完整的错误处理和输入验证来确保用户输入的数据符合要求。
阅读全文