• 【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种方式】

    【加群交流】



  • 相关阅读:
    python安装教程
    protobuf安装教程
    PlantUML安装教程
    题解-CF1140E Palindrome-less Arrays
    FST
    线段树
    题解-CF677D Vanya and Treasure
    最短路
    后缀自动机
    虚树
  • 原文地址:https://www.cnblogs.com/hezhiyao/p/13413560.html
Copyright © 2020-2023  润新知