Java Reference
In-Depth Information
Click here to view code image
class Point {
Point() { setMasterID(); }
int x, y;
private int ID;
private static int masterID = 0;
private void setMasterID() { ID = masterID++; }
}
the private members ID , masterID , and setMasterID may be used only within the body of
class Point . They may not be accessed by qualified names, field access expressions, or
method invocation expressions outside the body of the declaration of Point .
See § 8.8.8 for an example that uses a private constructor.
6.6.2. Details on protected Access
A protected member or constructor of an object may be accessed from outside the package in
which it is declared only by code that is responsible for the implementation of that object.
6.6.2.1. Access to a protected Member
Let C be the class in which a protected member is declared. Access is permitted only within
the body of a subclass S of C .
In addition, if Id denotes an instance field or instance method, then:
• If the access is by a qualified name Q.Id , where Q is an ExpressionName , then the
access is permitted if and only if the type of the expression Q is S or a subclass of
S .
• If the access is by a field access expression E.Id , where E is a Primary expression,
or by a method invocation expression E.Id (. . .) , where E is a Primary expression,
then the access is permitted if and only if the type of E is S or a subclass of S .
More information about access to protected members can be found in Checking
Access to Protected Members in the Java Virtual Machine by Alessandro
Coglio, in the Journal of Object Technology , October 2005.
6.6.2.2. Qualified Access to a protected Constructor
Let C be the class in which a protected constructor is declared and let S be the innermost
class in whose declaration the use of the protected constructor occurs. Then:
Search WWH ::




Custom Search