一、 封裝的真正意義不只是把欄位設為private加Getter/Setter
在很多教科書中,封裝常被簡化為:
把欄位改成private,用IDE一鍵生成所有欄位的getter與setter。
這是嚴重的封裝反模式Anemic Domain Model。
如果每個屬性都有公開的setter,外部程式碼隨時可以修改物件內部狀態,那與直接將欄位設為public幾乎沒有本質區別。
真正的封裝是保護物件的不變性Invariant,封裝的核心是對外隱藏實作細節,由物件自己保證資料的合法性與一致性。
二、 物件誕生的流水線:完整的初始化順序

當JVM遇到new Child()的時後
三、 this的三種工程用法
this代表當前物件實例的引用,在架構設計中有三個核心使用場景:
四、永遠不要在建構子中逸出this(This Escape)
這是在併發或多執行緒環境中非常隱蔽的危險反模式。