這是這個系列的第二篇。在第二篇里,我決定講一講封裝。
程序的不同部分應該用封裝去互相隔離,模塊之間應該不應該產(chǎn)生很隨意的關聯(lián)。
可能有的人覺得不解,又或覺得是有道理的廢話,不急,先一步一步來。
我們先來看看面向對象的三個基本特征是什么?
繼承
多態(tài)
封裝
如果你是科班畢業(yè),這6個字應該是你第一次學到類(class)的時候就聽老師說了。
我們老師的話大概是這樣的:
在類里面,封裝就是通過一些手段來限制類外部的訪問,依此隔離出類相對封閉的區(qū)域。
也就是說,如果有人想要操作類里面的成員(field),不應該讓它直接進行這樣操作。而應該通過良好定義的函數(shù)(或屬性的Setter)來完成。除非你有不得不如此的理由,否則就不應該讓人家直接訪問你的私有成員。
下面的代碼通常是bad practice。
任意的類均能任意的修改Person內的Name和Age,即便Name寫成亂碼或將Age設成負數(shù),都是可以做到的,Person類自己是控制不住的。
public class Person{ public int Age; &nb