title: Why do we declare private fields when we have accessors and mutators?
body: <p>If I create a class in Java, I've always been taught that the convention is to make all fields of a class private. If I need to access or change them, I can create an accessor and mutator method. I do understand the importance of private variables, as they help reduce complexity and allow for encapsulation.</p>
  
  <p>What I don't understand is that if I create a public accesor and mutator method, isn't the variable public at that point? Why is it still convention to use private variables in situations where anyone can access them?</p>
  
  <p>I should also note that I understand the important of these methods, but I would like to know why we bother to make the variable private <em>even though</em> we are giving anyone access to it through those methods?</p>