In java, do we really have to do that in order our variable or method to be public? For example:
void aaa() {
...
}
or
public void aaa() {
...
}
If it is a must, why?
Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.
Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.
Lost your password? Please enter your email address. You will receive a link and will create a new password via email.
Please briefly explain why you feel this question should be reported.
Please briefly explain why you feel this answer should be reported.
Please briefly explain why you feel this user should be reported.
Well that’s not a variable, that’s a method – but yes, you have to do that to make a method public. If you don’t, it has the default package access, and won’t be accessible from other packages. You should judge for yourself whether any particular method you write should be accessible only within the same class (make it
private) to subclasses (make itprotected), to the package (leave the default; you can’t state package access explicitly, unfortunately) or to everything (make itpublic).(This is a slight simplification of the access modifiers, but it’s a start.)
As for why this is the case – typically you should limit visibility so that your type only exposes the methods which really make sense for the concept it’s trying to encapsulate. You may have many more private methods which are implementation-specific, and which the outside world shouldn’t know or care about.