[Java 개발] 제29회 익명의 내부 클래스 (Anonymous Inner Class)

Java입문강좌

시작하며

여러분 안녕하세요!

DreamHanks의 254cm입니다.

이번에는 익명의 내부 클래스에 대해 설명해 보겠습니다.

Java의 전체 기사는 여기를 클릭해 주세요.

이전 기사는 [Java 개발] 제28회 Stream API에 대해서 배워 봤습니다.

익명의 내부 클래스란?

이전 기사에서 다룬 인터페이스와 추상 클래스는 인스턴스 생성이 불가능합니다.

인스턴스를 생성하기 위해서는 각 추상 메서드를 실장하는 클래스를 만들고,

그 클래스를 통해서 인스턴스를 생성할 뿐이었습니다.

 

하지만 익명의 내부 클래스를 이용하면 인스턴스를 생성하는 것과 비슷한 효과를 낼 수 있습니다.

익명의 내부 클래스는 클래스의 인스턴스를 생성할 때 생성할 수 있으며,

일회용 아이 클래스라고 이해하면 됩니다.

 

익명의 내부 클래스 작성법

위와 같이 상속받고자 하는 부모 클래스 인스턴스를 생성한 후 익명 내부 클래스를 정의합니다.

 

샘플

위의 샘플과 같이 익명내부 클래스를 생성하여 부모클래스의 메서드를 오버라이드합니다.

 

실행 결과

 

익명의 내부 클래스 활용 샘플

샘플 1

위와 같이 익명 내부 클래스에서 추상 메서드를 정의하여 사용합니다.

클래스의 인스턴스를 생성하여 사용하는 것과 동일한 효과를 낼 수 있습니다.

 

실행 결과

 

샘플 2

인터페이스의 경우에도 추상 메서드를 익명 내부 클래스로 오버라이드하면 인스턴스 생성이          가능합니다.

실행 결과

 

샘플 3

익명 내부 클래스에서 새로 만든 필드나 메서드는 외부에서 접속할 수 없으며,

익명 내부 클래스에서만 사용할 수 있습니다.

 

 

샘플 4

위와 같이 인터페이스나 추상 클래스를 인수로 하는 메서드에 익명 내부 클래스를 전달할 수          있습니다.

끝으로

이번 기사는 이상입니다.

다음 시간에는 Thread를 배워 보겠습니다.

방문해 주셔서 감사합니다.

コメント