Python - 面向对象编程 - 小实战(2)

2021-09-07 16:33:18 浏览数 (2)

需求

  • 小明和小美都爱跑步
  • 小明体重 75 公斤
  • 小美体重 45 公斤
  • 每次跑步会减肥 0.5 公斤
  • 每次吃东西体重增加 1 公斤

需求分析

  • 小明、小美都是一个具体的对象,他们都是人,所以应该抽象成人类
  • 小明、小美是具体的对象的姓名,而体重是另一个属性,所以有两个属性
  • 跑步、吃东西都是一种行为,所以也有两个方法

类图

实现代码

代码语言:javascript复制
class Person:
    # 构造方法
    def __init__(self, name, weight):
        # 两个实例属性
        self.name = name
        self.weight = weight

    # 打印实例对象会返回的内容
    def __str__(self):
        return f"名字:{self.name} 体重:{self.weight} 很爱跑步"

    # 跑步实例方法
    def run(self):
        print(f"{self.name} 在跑步,体重减少0.5公斤")
        self.weight -= 0.5

    # 吃饭实例方法
    def eat(self):
        print(f"{self.name} 在吃饭,体重增加1公斤")
        self.weight  = 1

# 实例对象一:小明
xiaoming = Person("小明", 75)
print(xiaoming)
xiaoming.eat()
xiaoming.run()
print(xiaoming)

# 实例对象二:小美
xiaomei = Person("小美", 45)
print(xiaomei)
xiaomei.eat()
xiaomei.run()
print(xiaomei)



# 输出结果
名字:小明 体重:75 很爱跑步
小明 在吃饭,体重增加1公斤
小明 在跑步,体重减少0.5公斤
名字:小明 体重:75.5 很爱跑步

名字:小美 体重:45 很爱跑步
小美 在吃饭,体重增加1公斤
小美 在跑步,体重减少0.5公斤
名字:小美 体重:45.5 很爱跑步

0 人点赞