1, private modifier, that the members are private, only their own can access;
2, protected, represents the protected permission, embodied in the inheritance, that is, the subclass can access the parent class protected members (subclasses can access the parent class with the protected modifier members), while other classes within the same package can also access the protected members.
3, no modifier words (default), indicating the package access rights (friendly, the Java language is not friendly this modifier, so that the name should be derived from C + +), the same package can be accessed, Access rights are package-level access , (by default, friendly type)
4, public modifier, that the member is open, all other classes can be accessed;
The following table is the meaning and usage of the Java access control character
|
Class Internal |
This package |
Sub-class |
External Package |
Public |
√ |
√ |
√ |
√ |
Protected |
√ |
√ |
√ |
X |
Default |
√ |
√ |
X |
X |
Private |
√ |
X |
X |
X |
Note: Java access control is stuck at the compiler level, that is, it does not leave any traces in the. class file, only access control checks during compilation. In fact, by means of reflection, it is possible to access any member of any class under any package, for example, to access a private member of a class.
Difference:
(1) Public: can be accessed by all other classes.
(2) Private: can only be accessed and modified by themselves.
(3) Protected: The class in itself, the subclass and the same package can be accessed.
(4) Default: Classes in the same package can be accessed and declared without modifiers, which are considered friendly.
Java modifier protect public protected