The access to classes,
constructors, methods and
fields are regulated using access modifiers i.e. a class can control
what information or data can be accessible by other classes. To take advantage
of encapsulation, you should minimize access whenever possible.
Java
provides a number of access modifiers to help you set the level of access you
want for classes as well as the fields, methods and constructors in your classes. A member has package or
default accessibility when no accessibility modifier is specified.
Java
comes with four access specifiers. They are
- public
- protected
- default
- private
I) Class level access modifiers (java
classes only)
Only
two access modifiers is allowed, public and no
modifier
- If a class is ‘public’, then it
CAN be accessed from ANYWHERE.
- If a class has ‘no modifer’,
then it CAN ONLY be accessed from ‘same package’.
II) Member level access modifiers (java
variables and java methods)
All
the four public, private, protected and no
modifer is
allowed.
- public and no modifier – the
same way as used in class level.
- private – members CAN ONLY
access.
- protected – CAN be accessed
from ‘same package’ and a subclass existing in
any package can access.
For
better understanding, member level access is formulated as a table:
Access Modifiers
|
Same Class
|
Same Package
|
Subclass
|
Other packages
|
public
|
Y
|
Y
|
Y
|
Y
|
protected
|
Y
|
Y
|
Y
|
N
|
no access modifier(default)
|
Y
|
Y
|
N
|
N
|
private
|
Y
|
N
|
N
|
N
|
First
row {public Y Y Y Y} should be interpreted as:
- Y – A member declared with
‘public’ access modifier CAN be accessed by the members of the ‘same
class’.
- Y – A member declared with
‘public’ access modifier CAN be accessed by the members of the ‘same
package’.
- Y – A member declared with
‘public’ access modifier CAN be accessed by the members of the ‘subclass’.
- Y – A member declared as
‘public’ CAN be accessed from ‘Other packages’
Second
row {protected Y Y Y N} should be interpreted as:
- Y – A member declared with
‘protected’ access modifier CAN be accessed by the members of the ‘same
class’.
- Y – A member declared with
‘protected’ access modifier CAN be accessed by the members of the ‘same
package’.
- Y – A member declared with
‘protected’ access modifier CAN be accessed by the members of the
‘subclass’.
- N – A member declared with
‘protected’ access modifier CANNOT be accessed by the members of the
‘Other package’.
similarly
interpret the access modifiers table for the third (no access modifier) and
fourth (private access modifier) records.
No comments:
Post a Comment