Person이라는 객체를 두고 바깥에서 Person의 프로퍼티를 변경해보겠습니다.
현재는 public이기때문에 아주 잘 변경되는 것을 볼 수 있습니다.
그렇지만 멤버변수를 바깥에서 수정하는 건 좋지 않기 때문에 private으로 바꾸겠습니다.
그래도 같은 클래스에서는 충분히 객체가 생성된 이후에 수정될 수 있습니다.
불변으로 만들고 싶다면 final
을 추가합니다.
이 때 레퍼런스들은 재할당은 할 수 없지만 기존의 값(여기서는 List<String>
)을 수정할 수는 있습니다.
또 클래스의 상속을 막고 싶다면 클래스 앞에 final을 붙이면 됩니다.
좋은 글 감사합니다.