File APIs for Java Developers
Manipulate DOC, XLS, PPT, PDF and many others from your application.
The moose likes Programmer Certification (SCJP/OCPJP) and the fly likes Let me get this straight . . . Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login
JavaRanch » Java Forums » Certification » Programmer Certification (SCJP/OCPJP)
Bookmark "Let me get this straight . . . " Watch "Let me get this straight . . . " New topic

Let me get this straight . . .

Mathew Kuruvilla
Ranch Hand

Joined: Nov 27, 2001
Posts: 141
What do they mean by a 'top level' class, and a 'top level nested' class and a 'inner class' and 'non-static inner class' and 'static inner class' and a 'top level static inner class"? ( I made the last one up, but I don't see anything wrong with them.
Also, can a static inner class (meaning this to be an inner class nested to any depth, and assuming that all rules regarding them are the same) have a non-static instance members as well as static instance members?
Valentin Crettaz
Gold Digger

Joined: Aug 26, 2001
Posts: 7610
Check this:
Inner class specification
Valentin Crettaz
Sun Certified Programmer for Java 2 Platform

[Blog] [Blogroll] [My Reviews] My Linked In
Michael Ernest
High Plains Drifter

Joined: Oct 25, 2000
Posts: 7292

For those interested in a short-n-sweet answer: "Top level static inner" is redundant. If an inner class is static, it's "nested" in one sense (written inside another class), but "top level" in another (doesn't require an instance of the enclosing instance to load).
The other redundant term for this construct is "an abomination" but you should pass your exam first, hurl rocks at the language designers second.
Michael Ernest, co-author of: The Complete Java 2 Certification Study Guide

Make visible what, without you, might perhaps never have been seen.
- Robert Bresson
Mathew Kuruvilla
Ranch Hand

Joined: Nov 27, 2001
Posts: 141
Thanks Michael. That was what I was looking for.
I have also discovered a problem in Khalid's book after going to Valentin's link on the discussion forum here. If you look on page 239, example 7.7,

If we replace the 'static double d' by 'final static double d = 0.0', we find that code does indeed compile is OK.
I do not believe that he mentions this little detail anywhere in the book.
I agree. Here's the link:
subject: Let me get this straight . . .
It's not a secret anymore!