I know it has been asked before, but I still am not truly getting it.
People say it is about encapsulation, to protect the fields from outside classes from being accessed? But what's the point of protecting the fields if you are using a get/set methods to change and access the fields anyways?
People also said using get/set methods, you can have the flexibility to add more logic into the methods. I agree, but what happens if your program will never require such a thing? In that case, can you just still declare the field as public instead of get/set method?