This week's giveaway is in the Android forum.
We're giving away four copies of Android Security Essentials Live Lessons and have Godfrey Nolan on-line!
See this thread for details.
The moose likes Programmer Certification (SCJP/OCPJP) and the fly likes Inheritance Doubt?? Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login


Win a copy of Android Security Essentials Live Lessons this week in the Android forum!
JavaRanch » Java Forums » Certification » Programmer Certification (SCJP/OCPJP)
Bookmark "Inheritance Doubt??" Watch "Inheritance Doubt??" New topic
Author

Inheritance Doubt??

Joe Harry
Ranch Hand

Joined: Sep 26, 2006
Posts: 9345
    
    2

Guys,

The code below is from Dan Chisholm,


The o/p is given as B,SuperB,A,SuperA. I want to know what it means when we say new A().new B().m1();??

Please help me guys.


SCJP 1.4, SCWCD 1.4 - Hints for you, Certified Scrum Master
Did a rm -R / to find out that I lost my entire Linux installation!
Sanjeev Singh
Ranch Hand

Joined: Nov 01, 2006
Posts: 381
Jothi Shankar wrotes
what it means when we say new A().new B().m1();?


It means creating an instance of regular inner class and invoing the method m1().


~Sanjeev Singh<br />SCJP 1.5
Barry Gaunt
Ranch Hand

Joined: Aug 03, 2002
Posts: 7729
You are doing a great job mentioning where the questions come from Jothi

B is an inner class (non-static nested class) of A so it needs an instance of A to exist before an instance of B can exist. So that's what the new A() is for - to get the outer instance of A. Now we can use our instance of A to create an instance of B. The Java syntax for that is new A().new B(). So now we have our instance of B together with its containing instance of A. We can now call B's methods on this instance of B. So new A().new B().m1() calls method m1 on an instance of inner class B contained in an instance of A.

I feel rather dizzy now.


Ask a Meaningful Question and HowToAskQuestionsOnJavaRanch
Getting someone to think and try something out is much more useful than just telling them the answer.
Joe Harry
Ranch Hand

Joined: Sep 26, 2006
Posts: 9345
    
    2

Guys,

To be frank and honest, I know a good deal of information with respect to inner classes and nested classes. But when I was answering the question from Dan's website, I didn't notice that class B is inside class A. I failed to notice it and I was wondering how we can do new A().new B() on normal classes other than innser classes. In some of the mock exams that I took from whizlabs, I have comitted similiar mistakes where I forget to see the code throughly. So I leant that I should see the question with my both eyes wide open.

Thanks for the help ranchers.
 
Consider Paul's rocket mass heater.
 
subject: Inheritance Doubt??
 
Similar Threads
Accessing enclosing class' super class in inner
Question from danchisholm
Pelase Help me out imme....
Confused
super of super