• When a member of a class is modified by the public specifier, then that member can be accessed by any other code.
• When a member of a class is specified as private, then that member can only be accessed by other members of its class.
• When a member of a class is specified as protected, then that member of a class is public within its own package and in subclasses in other packages, but cannot be accessed by non-subclasses outside its package.
• When no access specifier is used, then by default the member of a class is public within its own package, but cannot be accessed outside of its package.
Anything declared public can be accessed from anywhere. Anything declared private cannot be seen outside of its class. When a member does not have an explicit access specification the default access is used, it is visible to subclasses as well as to other classes in the same package. If you want to allow an element to be seen outside your current package, but only to classes that subclass your class directly, then declare that element protected.
Private | Default | Protected | Public | |
Same class | Yes | Yes | Yes | Yes |
Same package subclass | No | Yes | Yes | Yes |
Same package non-subclass | No | Yes | Yes | Yes |
Different package subclass | No | No | Yes | Yes |
Different package non-subclass | No | No | No | Yes |
No comments:
Post a Comment