(1)定义point类,具体要求如下:
l 类中数据成员x和y代表点对象的x和y坐标值;
l 类中定义构造函数,实现对x和y的初始化
l 类中定义+运算符重载函数,实现两个点对象相加运算,返回点对象,其x和y坐标分别为参与运算的两个点对象的x坐标和,y坐标和;
l 类中定义点对象(x1,y1)转字符串方法,返回“(x1, y1)”字符串;
l 类中定义*运算符重载函数,实现1个点对象(x1,y1)和整数K的乘法运算,返回点对象,其x和y坐标分别为(kx1, ky1);。
l 设计point类的测试数据,并实现对point类的测试程序。
(2)建立Person类,Student类和Employee类,设计类之间的继承关系,通过实现类来验证类中私有数据成员,子类和父类的继承关系,子类构造函数中调用父类构造函数,以及多态机制等知识点。
(1)
class Point:
def __init__(self, x, y):
self.x = x;
self.y = y;
def __add__(self, other):
t1 = self.x + other.x;
t2 = self.y + other.y;
return Point(t1, t2);
def __str__(self):
return str((self.x, self.y));
def __mul__(self, other):
return Point(self.x * other, self.y * other);
p1 = Point(2,3)
p2 = Point(4,4)
p3 = p1+p2
print(p3.x,p3.y)
print(Point.__str__(p3))
print(type(Point.__str__(p3)))
p4 = p1*3
print(p4.x,p4.y)
(2)
class Person:
def __init__(self, Name, Age):#构造函数
self.Name = Name;
self.Age = Age;
__siyou = 0;
py = "python";
def info (self):
print("name: {0}, age: {1}", format(self.Name, self.Age));
#两个下划线为私有成员
#(2)建立Person类,Student类和Employee类,
# 设计类之间的继承关系,通过实现类来验证类中私有数据成员
# ,子类和父类的继承关系,子类构造函数中调用父类构造函数,
# 以及多态机制等知识点。
class Student(Person):
def __init__(self, Name, Age, Score):
super().__init__(Name, Age);
#super可以调用父类的方法和属性,只有在重写后才会优先调子类的
#使用方法:super.属性,super.方法()
self.Score = Score;
def info(self):#方法重写
super().info();
print("Score: ", self.Score);
class Employee(Person):
def __init__(self, Name, Age, Slary):
super().__init__(Name, Age);
self.Slary = Slary;
def info(self):#重写
super(Employee, self).info();
print("Slary", self.Slary)
P_1 = Person("lihua", 20);
stu_1 = Student("zhangsan", 6, 10);
emp_1 = Employee("wangwu", 30, 10000);
print(emp_1.py, emp_1.Slary, emp_1.Age, emp_1.Name);
print(Person.py);
写c++和Java习惯加分号了,之前写了几天python然后写c++忘加分号好几次,就干脆直接python也加分号。
版权声明:本文为m0_62598965原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。