Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Call inner class member from a different class

Tags:

java

Please forgive me if this question is silly as i'm completely new to JAVA program. I'm looking into nested classes concept and come across the following program.

// Demonstrate an inner class.
class Outer {
    int outer_x = 100;
    void test() {
        Inner inner = new Inner();
        inner.display();
    }
    // this is an inner class
    class Inner {
        void display() {
            System.out.println("Display: outer_x = " + outer_x);
        }
    }
}
class NestedClass {
    public static void main(String args[]) {
        Outer outer = new Outer();
        outer.test();

//      Inner inner = new Outer().Inner();
//      inner.display();
    }
}

And my doubt is how to access members of Inner class from NestedClass. In "Java - The complete reference", it is given that "You can, however, create an instance of Inner outside of Outer by qualifying its name with Outer, as in Outer.Inner". But if i try to use it as,

        Inner inner = new Outer().Inner();
        inner.display();

it is throwing error. So please help me experts.

like image 465
Stranger Avatar asked Dec 02 '25 11:12

Stranger


1 Answers

You need to create a new Inner instance by using the new keyword.

Inner inner = new Outer().new Inner(); // "new" keyword is required to create a new Inner instance.

If you do not have the import for import com.java.test.Outer.Inner; added, add it. Or else, you can do something like this

Outer.Inner inner = new Outer().new Inner();
like image 154
Rahul Avatar answered Dec 04 '25 00:12

Rahul



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!