일모도원(日暮途遠) 개발자

[Java] 내부 클래스에서 외부 클래스의 메소드를 부를때. 본문

프로그래밍 언어/자바

[Java] 내부 클래스에서 외부 클래스의 메소드를 부를때.

달님개발자 2023. 2. 2. 14:40

내부 클래스에서 외부 클래스의 메소드를 부를때는 그냥 메소드명으로 부르면 된다.

하지만 같은 이름의 메소드가 내부/외부에 같이 있을때는 그냥 메소드명으로 부르면 내부 클래스의 메소드가 호출된다.

 

외부 클래스의 메소드를 호출하기 위해서는 

"외부클래스명.this.메소드명"으로 호출해야 한다.

 

즉 Outer.this.show() 이런씩으로 내부 클래스내에서 호출하면 외부 클래스인 Outer클래스의 show메소드가 호출된다.

class Outer {
    void show() {
        System.out.println("outter show");
    }

    class Inner{
        void show() {
            System.out.println("inner show");
        }
        void myMethod() {
            show(); //"inner show"
            Outer.this.show(); //"outter show"
        }
    }
}