這是這個系列的第二篇。在第二篇里,我決定講一講封裝。
程序的不同部分應該用封裝去互相隔離,模塊之間應該不應該產(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