title: Why getter & setter if return value is mutable?
body: <p>In C++ a getter &amp; setter for a private data member is very useful due to the ability to control mutability via a <code>const</code> return value.</p>
  
  <p>In Java, if I understand correctly (please correct me if I am mistaken), specifying <code>final</code> on a getter doesn't work that way. Once the caller received the data member reference through the getter, it can modify it, despite it being private...</p>
  
  <p>If that's the case (and please correct me if I have a gross misconception here), why not declare the data member <code>public</code> and simplify things?</p>