封裝, Encapsulation, 物件導向, Oop, Object Oriented.
可以直接存取，但就如同上面的範例，正因為可以「直接存取」而導致未來程式擴充性的問題。 因此在重構上，我們將「name、questions、answers」改為 private，如果想要存取則要透過 Getters、Setters 的函式。 重構後，儘管我們 ExaminationPaper 的 Class 變得更長，但是日後有其他需求新增時，我們可以更靈活的變更，維護性、可讀性、擴充性都增加不少。 以今天重構後的 Class 舉例，如果日後使用到設定答案： examinationPaper.answers = [...]; 就會觸發到 sendEmail 的函式。