Material adicional: Curso Fundamentos de Java

Episodio 1

private final NO protege tu lista | Encapsulación falsa en Java

Campo private, campo final… y cualquiera que pasó por tu constructor puede vaciarte la lista desde fuera. private protege el nombre y final protege la referencia: ninguno protege el objeto al otro lado. Las dos puertas por las que se fuga tu estado, y cómo cerrarlas con una sola línea.