【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)
【往期精彩】
▷【Python基础编程196 ● 读取文件的4种方式】
▷【Python基础编程197 ● 读取文件的4种方式】
▷【Python基础编程198 ● 读取文件的4种方式】
▷【Python基础编程199 ● Python怎么读/写很大的文件】
▷【Python基础编程200 ● 读取文件的4种方式】
▷【Python基础编程201 ● 读取文件的4种方式】
▷【Python基础编程202 ● 读取文件的4种方式】
▷【Python基础编程203 ● 读取文件的4种方式】
【加群交流】