python–面向对象与程序设计

  • Post author:
  • Post category:python


(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 版权协议,转载请附上原文出处链接和本声明。