封装 是面向对象编程的一大特点。
面向对象编程的 第一步,就是将 属性 和方法 封装 到一个抽象的 类 中(之所以说抽象,因为 类 是无法直接使用的)。
然后 外界 使用 类 创建 对象,让对象调用方法就好了。
对象方法的细节 都被 封装 在 类的内部。
17集,小明爱跑步:封装特性和需求分析
需求:小明 体重 75.0 公斤;小明每次跑步 会减肥 0.5 公斤;小明每次 吃东西 体重增加 1公斤。
这个案例,我感受到了对小明深深的恶意,感觉小明这辈子是减不下去了。
我要是小明,我就报警了!
第一步,使用名词提炼法,将需求中的名词提炼出来,可以定义人类,并确定名字和体重两个属性。
动词:吃、跑步,就可以出现两个方法 吃 和跑。
这样,类名、属性、方法,均已确定完毕。
18集,案例完成
在 类 中,先使用 init 方法进行初始化,并使用 str。
接着,定义两个方法 run 和 eat ,可以先使用 pass 语句,待之后再进行补充。
封装 完毕,定义对象就很轻松了。
可见,面向对象的编程方法,主要功夫都是在 类 里面了。
在 对象的方法内部,是可以 直接访问对象的属性 的。
19集,多个对象属性之间互不干扰
需求:小明 和 小美 都爱跑步;小明 体重 75.0 公斤;小美 体重 45.0 公斤;每次跑步 都会减少 0.5公斤;每次 吃东西 都会增加 1 公斤。
这种时候就看出面向对象很轻松了,完全都不用搭理 类 里面的事情,直接定义 对象 就可以了。
提示:在 对象的方法内部,是可以 直接访问对象的属性 的;同一个类 创建的 多个对象 之间,属性 互不干扰!
20集,摆放家具:需求分析,被使用的类应该先开发
需求:房子 有 户型、总面积 和 家具名称列表;
家具 有 名字 和 占地面积,其中 席梦思 占地 4 平米、衣柜 占地 2平米、餐桌 占地 1.5平米。
将以上三件 家具 添加 到 房子 中。
打印房子时,要求输出:户型、 总面积、剩余面积、家具名称列表。
经分析发现,需要定义两个类,一个 家具 类,一个 房子 类。
而两个 类 中,显然应该先开发 家具类,不只是因为 家具 简单,更重要的是 房子要使用到家具,被使用的类,通常应该先开发。
这个案例明显比上一个要难不少,尤其是还涉及到两个类,应该是需要好好消化一下的。
纯赶进度毫无意义,就像有的小伙伴提醒我的:不要过于在意一天看了多少集。
今天事情有点多,后面需要消化的内容还是留到明天吧。
领取专属 10元无门槛券
私享最新 技术干货