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也加分号。

  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值