KoreaIt Academy/JAVA

15. JAVA의 내부클래스, 익명클래스(Anonymous inner class)

hongeeii 2021. 7. 20.
728x90
반응형

내부 클래스(Inner Class)

내부클래스는 클래스 내에 선언된 클래스 입니다.

클래스에 다른 클래스를 선언하는 이유는 두 클래스가 긴밀한 관계에 있기 때문입니다.

 

※ 메소드 안에서 클래스를 선언할 수도 있습니다.

내부클래스의 장점

외부 클래스가 메모리에 할당 되어야 내부 클래스를
객체화 할 수 있기 때문에 클래스를 숨기기 위해서 내부 클래스를 사용합니다. (캡슐화)

내부 클래스는 외부 클래스의 필드이기 때문에 외부 클래스의 필드를 자신의 필드처럼 가져다 사용할 수 있게 된다.

 

내부클래스는 모바일이나 GUI애플리케이션에서 많이 사용되지만 웹에서는 잘 사용되지 않습니다.

 

내부클래스 사용 예제

외부클래스내에 내부클래스가 선언되었고, 메소드 내에서도 내부클래스가 사용될 수 있습니다.

In클래스를 사용하기 위해서는 먼저 Out클래스에 접근하여 주소를 얻어낸후에 접근을 해야합니다.

 

익명 클래스(Anonymous inner class)

이름이 없는 클래스이며 구현되지 않은 필드를 구현하기 위해 일회성으로 생성되는 클래스입니다.

익명 클래스를 사용하는 가장 큰 목적은 부모 클래스를 상속받는 서브 클래스를 생성하지 않고도, 단일 객체를 만들어서 부모 클래스에 정의된 동작에서 행위를 추가할 수 있다는 것입니다.

 

사용 형식은 다음과 같습니다.

부모클래스 인스턴스 = new 부모클래스() {
      ///부모클래스 메소드 오버라이드
};

 

익명 클래스 사용 예시

Animal 인터페이스가 있습니다.

인터페이스를 클래스에서 (implements)구현하여 사용해야 하지만 익명클래스를 이용하면

implements 나 extends를 사용하지 않고도 바로 객체에 접근하여 추상메소드를 구현하여 사용할 수 있습니다.

 


이상으로 내부클래스와 익명클래스에 대해 알아보았습니다.

728x90
반응형

추천 글