构造日期类,包括年、月、日等私有属性,构造函数和操作这些私有属性的公有函数以及将该对象转换成字符串的转换函数(就是能强制类型转换成string类,比如:有一个日期对象d=date(2019,3,26), 则string(d)就会返回一个字符串“2019年3月26日”);构造人员类,包括姓名,出生日期(复合了日期类的对象)等私有属性,构造函数和操作这些属性的公有函数;构造学生类,该类从人员类派生而来,包括学号和专业私有属性,构造函数和操作私有属性的公有函数。给出python代码实现
时间: 2024-02-24 18:57:54 浏览: 122
以下是基于Python的代码实现:
```python
class Date:
def __init__(self, year, month, day):
self.year = year
self.month = month
self.day = day
def setYear(self, year):
self.year = year
def getYear(self):
return self.year
def setMonth(self, month):
self.month = month
def getMonth(self):
return self.month
def setDay(self, day):
self.day = day
def getDay(self):
return self.day
def __str__(self):
return str(self.year) + "年" + str(self.month) + "月" + str(self.day) + "日"
class Person:
def __init__(self, name, birthDate):
self.name = name
self.birthDate = birthDate
def setName(self, name):
self.name = name
def getName(self):
return self.name
def setBirthDate(self, birthDate):
self.birthDate = birthDate
def getBirthDate(self):
return self.birthDate
class Student(Person):
def __init__(self, name, birthDate, studentID, major):
super().__init__(name, birthDate)
self.studentID = studentID
self.major = major
def setStudentID(self, studentID):
self.studentID = studentID
def getStudentID(self):
return self.studentID
def setMajor(self, major):
self.major = major
def getMajor(self):
return self.major
if __name__ == "__main__":
d = Date(2019, 3, 26)
dateStr = str(d)
print(dateStr)
p = Person("张三", d)
print(p.getName())
print(p.getBirthDate())
s = Student("李四", d, "2019001", "计算机科学")
print(s.getName())
print(s.getBirthDate())
print(s.getStudentID())
print(s.getMajor())
```
在这个实现中,我们定义了三个类:日期类(Date)、人员类(Person)和学生类(Student)。
日期类包括私有属性年(year)、月(month)和日(day),以及构造函数和操作这些私有属性的公有函数,同时还重载了`__str__()`方法,将日期对象转换成字符串类型。
人员类包括私有属性姓名(name)和出生日期(birthDate),以及构造函数和操作这些属性的公有函数。
学生类是从人员类派生而来的,增加了学号(studentID)和专业(major)两个私有属性,以及构造函数和操作这些私有属性的公有函数。
在主函数中,我们创建了一个日期对象、一个人员对象和一个学生对象,并调用了它们的公有函数来操作它们的属性,同时也使用了`__str__()`方法将日期对象转换成字符串类型。
阅读全文