python面向对象:封装的编程案例
面向对象三大特性之一:封装
封装 是面向对象编程的一大特点,是面向对象编程的第一步(根据职责 将属性和方法封装到一个抽象的类中)。
外界使用类创建对象,然后让对象调用方法。对象方法的细节 都被封装在类的内部
"""
封装 是 面向对象的三大特性之一
封装就是把类的一些属性和方法都封装在类的内部
在类的外部只需要去实例化对象,然后通过对象去调用属性和方法,不需要关心方法是怎么实现的
应用1:体重
小美体重47公斤,小明体重85公斤。每次跑步会减肥0.5公斤,每次吃东西增加1公斤。
定义类的三要素:类名,属性,方法
分析:
定义类:Student / Person
属性:name,weight
方法:run(),eat()
"""
class Person:
def __init__(self,name,weight):
self.name = name
self.weight = weight
def run(self):
print('%s 爱跑步,体重减少0.5公斤' % self.name)
self.weight -= 0.5 # self.weight = self.weight - 0.5
def eat(self):
print(f'{self.name} 爱吃东西,体重增加1公斤')
self.weight += 1
def __str__(self):
# return f'{self.name},当前体重:{self.weight}'
return '我是 %s , 我当前的体重是:%.1f ' % (self.name,self.weight)
xiaomei = Person('小美',47)
xiaomei.run()
print(xiaomei)
xiaoming = Person('小明',85)
xiaoming.eat()
print(xiaoming)
# 观察上面的例子:属性和方法的具体实现都放在了类中,主程序只需要去实例化对象,调用属性和方法即可。这就是封装
# 练习:小李同学有100块钱,小陈同学有200块钱,每次 买东西会花20块,每次 卖东西能赚10块。
class Student:
def __init__(self,name,money):
self.name = name
self.money = money
def buy(self):
print(f'{self.name}买东西,花了20块')
self.money -= 20
def sell(self):
print(f'{self.name}卖东西,赚了10块')
self.money += 10
def __str__(self):
return f'我是{self.name},我手上还有【{self.money}】 块钱。'
xiaoli = Student('小李',100)
xiaoli.buy()
print(xiaoli)
xiaochen = Student('小陈',200)
xiaochen.sell()
print(xiaochen)
运行输出结果: