A public method can be called by
anybody, and you have little control over that. A private method can only be called by other code in the same class, and you have
full control over that code, so you can (theoretically) guarantee that private method is called correctly. Well, if you trust yourself and your fellow programmers, that is. Do you? If not, you probably
should validate, to guard against code errors. BTW: Did you look up the meaning of
defensive programming? You should, then you'd know what I'm talking about, and you wouldn't have to ask me. —
Andreas 23 secs ago