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?
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
Joined: Nov 27, 2001
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.