This week's book giveaway is in the Jobs Discussion forum.
We're giving away four copies of Java Interview Guide and have Anthony DePalma on-line!
See this thread for details.
The moose likes Programmer Certification (SCJP/OCPJP) and the fly likes protected access modifier Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login

Win a copy of Java Interview Guide this week in the Jobs Discussion forum!
JavaRanch » Java Forums » Certification » Programmer Certification (SCJP/OCPJP)
Bookmark "protected access modifier" Watch "protected access modifier" New topic

protected access modifier

cyril vidal
Ranch Hand

Joined: Jul 02, 2003
Posts: 247
I ask my self about protected modifier.
Here's what is said in Complete Java 2 Certification Guide from Philipp Heller and Simon Roberts:
only variables and methods may be declared protected

So, no of course, top level classes nor inner classes.
But here's what can be read in danchisholm mock exam on declaration.
If a class C is declared as a member of an enclosing class then C may be declared using no access modifier or any of the three access modifiers, private, protected, or public. However, if class C is not declared as a member of an enclosing class then C may be declared with no access modifier or using the access modifier "public". The other two access modifiers, private and protected, are not applicable to any class that is not a member class.

So my question is the following:
May a member class be declared protected ?
Thanks in advance,

SCJP 1.4, SCWCD, SCBCD, IBM XML, IBM Websphere 285, IBM Websphere 287
Anupam Sinha
Ranch Hand

Joined: Apr 13, 2003
Posts: 1090
Hi Cyril
Top level classes can't be protected. Member classes can be. But I guess that a better way to make yourself sure is by trying a piece of code that does that.
Andres Gonzalez
Ranch Hand

Joined: Nov 27, 2001
Posts: 1561
Member classes can be final, abstract, protected, private, public, static, strictfp.
Method-local inner classes can be either abstract or final.

I'm not going to be a Rock Star. I'm going to be a LEGEND! --Freddie Mercury
Marlene Miller
Ranch Hand

Joined: Mar 05, 2003
Posts: 1391
A member class of a class may be declared protected.
A member class of an interface is implicitly public.
Brian Joseph
Ranch Hand

Joined: May 16, 2003
Posts: 160
Oh my god, this is really funny. I just posted the same exact question about the exact same line in that book! I just did a double-take when I saw the topic.
Well, looks like I'm off to delete my post. Yes, clearly protected is allowed, I tried it, and it makes sense that it would be. In the book for other modifiers they say it can be used on "classes methods and variables", and so on. I guess maybe at this chapter, which is before nested classes, they think of "classes" as top-level only.
P.S. Read the last sentence on page 95. They state that classes are considered top-level in their chart on the following page
[ July 04, 2003: Message edited by: Brian Joseph ]
I agree. Here's the link:
subject: protected access modifier
It's not a secret anymore!