Discussion :: Inner Classes
-
which statement, inserted at line 10, creates an instance of Bar?class Foo { class Bar{ } } class Test { public static void main (String [] args) { Foo f = new Foo(); /* Line 10: Missing statement ? */ } }
A.
Foo.Bar b = new Foo.Bar();
|
B.
Foo.Bar b = f.new Bar();
|
C.
Bar b = new f.Bar();
|
D.
Bar b = f.new Bar();
|
Answer : Option B
Explanation :
Option B is correct because the syntax is correct-using both names (the enclosing class and the inner class) in the reference declaration, then using a reference to the enclosing class to invoke new on the inner class.
Option A, C and D all use incorrect syntax. A is incorrect because it doesn't use a reference to the enclosing class, and also because it includes both names in the new.
C is incorrect because it doesn't use the enclosing class name in the reference variable declaration, and because the new syntax is wrong.
D is incorrect because it doesn't use the enclosing class name in the reference variable declaration.
Be The First To Comment