【Python基础编程214 ● 面向对象 ● 面向对象案例:存放家具】


---------Python基础编程---------

Author : AI菌


【学习目标】

1.强化面向对象的设计能力,进一步理解类、属性和方法
2.如果一个对象与另外一个对象有一定的关系,那么一个对象可用是另外一个对象的属性

【需求文档】

1.家具分不同的类型,并占用不同的面积
2.输出家具信息时,显示家具的类型和家具占用的面积
3.房子有自己的地址和占用的面积
4.房子可以添加家具,如果房子的剩余面积可以容纳家具,则提示家具添加成功;否则提示添加失败
5.输出房子信息时,可以显示房子的地址、占地面积、剩余面积

【分析方法】

面向对象设计的三步走策略:
  1.确定类:判断那段文件描述的哪个对象,描述的是哪个对象,就创建哪个对象的类;
  2.确定属性:根据文字描述,确定应该定义哪些属性
          对象有的东西,一定是属性;

   3.确定方法:根据文字描述,确定应该定义哪些方法
          对象能做的事情,一定是方法;
            根据文字描述,确定应该在方法中做什么事情。

【需求分析】

 1.确定类:描述的是哪个对象,就创建哪个对象的类;
                  家具类:Furniture
                  房子类:House

 2.确定属性:对象有的东西,一定是属性
              家具面积:area 
              家具类型:type
              房子地址:address
              房子面积: total_area
              添加家具后,房子剩余面积:free_area

  3.确定方法:对象能做的事情,一定是方法
             家具类__init__(self,area, type)方法: 添加属性
             家具类__str__(self)方法:显示家具类型和占用面积
             房子类添加家具方法add_furniture(self):
                            1) 添加家具
                            2)计算剩余面积
             房子类__str__(self)方法:输出房子地址、占地面积、剩余面积

 【代码实现】

class Forniture:
    def __init__(self, type, area):
        self.type = type
        self.area = area

    def __str__(self):
        return f"家具类型为{self.type}, 占地面积为{self.area}"


class House:
    def __init__(self, address, total_area):
        self.address = address
        self.total_area = total_area
        self.free_area = total_area

    # 形参forniture: 家具对象
    def add_forniture(self, forniture):
        if self.free_area >= forniture.area:
            print("添加成功!!!")
            # 让剩余面积减少
            self.free_area -= forniture.area
        else:
            print("添加失败!!!")

    def __str__(self):
        return f"房子地址为{self.address}, 占地面积为:{self.total_area}, 剩余面积为:{self.free_area}"


home = House("北京市长安街1号", 300)

sofa = Forniture("鲨鱼皮沙发", 10)
bed = Forniture("金丝楠木大床", 20)
carpet = Forniture("祖母绿地毯", 300)

home.add_forniture(sofa)
print(home)

home.add_forniture(bed)
print(home)

home.add_forniture(carpet)
print(home)
View Code

【往期精彩】

▷【Python基础编程196 ● 读取文件的4种方式】
▷【Python基础编程197 ● 读取文件的4种方式】
▷【Python基础编程198 ● 读取文件的4种方式】
▷【Python基础编程199 ● Python怎么读/写很大的文件】
▷【Python基础编程200 ● 读取文件的4种方式】
▷【Python基础编程201 ● 读取文件的4种方式】
▷【Python基础编程202 ● 读取文件的4种方式】
▷【Python基础编程203 ● 读取文件的4种方式】

【加群交流】



原文地址:https://www.cnblogs.com/hezhiyao/p/13413560.html