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