I saw a code where getters and setters methods are declared private. I am trying to figure out the logic behind it, and I am really having hard time to understand why would you declare them as private? That's exactly opposite of what we are trying to achieve through getters and setters.
I can think of several reasons:
If a different programmer sees your code and wants access to a variable, but there are no setters and getters, he might think you just forgot about them, and add them themselves. However, if you declare them as private
, it's a statement of intent, saying I don't want these variables to be changed or accessed from the outside.
Say you don't want public
accessors. But maybe you want a count of how many times a private variable is changed. It's easier to use a setter rather than incrementing the count every time you access that variable.
Again, you don't want public
access, but during debugging, you might want to put a breakpoint in every place a private
member is changed. So instead of setting breakpoints everywhere in the class, you just set one in the accessor.