이너클래스에서 아우터클래스 Field 부르기
by 으렴음.. 람다식을 써서 아우터 클래스의 변수를 한번 불러보깨오
람다식이 필요한건 아니지만 람다식을 일단 써봅니다.
@FunctionalInterface
interface LogicSeven {
public void returnNono();
}
이렇게하고 리턴노노를 블러보깨요.
public class Using {
public int outter = 10;
class Inner {
int inner = 20;
void method() {
LogicSeven ln7 = () ->{
System.out.println("outter :"+outter); //안에꺼 참조
//바깥 객체 참조를 얻기 위해서는 클래스명.this를 사용하라
System.out.println("outter :"+Using.this.outter);
//아우터 클래스의 변수를 사용하고 싶을 때 이렇게 사용하면 된다.
System.out.println("outter :"+inner); //this랑 똑같음
System.out.println("outter :"+this.inner); //함수인수와 class변수와 구분하기 위해서 this를 사용
};
ln7.returnNono();
}
}
}
여기보면 이너 클래스에서 이너 변수를 이너와 디스.이너로 불렀읍미다.
아우터 클래스는 다음과 같이 부르면 됩니다.
OuterClass.this.FieldName
자 그러면 메소드를 메인에서 불러봅니다.
public class Using_Main {
public static void main(String[] args) {
Using using = new Using();
Using.Inner inner = using.new Inner();
inner.method();
}
}
이렇게 돌리면
요래요래 나옵니다.
'Programming Language > JAVA' 카테고리의 다른 글
Stack Unwinding 스택풀기 :: 스레드 반복, 람다식 등 활용 (0) | 2019.07.18 |
---|---|
Lambda Expressions 람다식의 활용 - 껍데기 (0) | 2019.07.18 |
DESIGN-PATTERN :: Singleton Pattern 싱글톤 패턴 (0) | 2019.07.17 |
숫자연산과 진법, String연산 (0) | 2019.07.17 |
Lambda Expressions 람다식 (0) | 2019.07.17 |
사이트의 정보
코딩하렴
으렴