익명 클래스 Anonymous class

Updated:

Anonymous란?

클래스의 선언과 객체 생성과 동시에 단 한번 사용할 수 있게 만든 클래스를 말합니다.

그래서 단 한번만 사용되고 오직 하나의 객체만 생성가능한 일회용 클래스입니다.

이름이 없어서 생성자를 가질 수 없고 단 하나의 클래스를 상속받거나 하나의 인터페이스만 구현 가능합니다.

익명 클래스의 구조는 다음과 같습니다.


인터페이스 자료형 + 참조변수명 = new + 인터페이스 자료형 ( ) + { 인터페이스의 메서드 오버라이딩 }


interface Anony{  // 'Anony' 인터페이스 선언
	void test();  // 'test' 추상 메서드 선언
}

class Normal_Class{  // 'Normal_Class' 일반 클래스 선언
	public void test2(){};  // 'test2' 일반 메서드 선언
}

public class main {

	public static void main(String[] args) {

        // 'Anony'의 객체 생성과 함께 {} 대괄호 안에 인터페이스의 추상 메서드 오버라이딩
		Anony test = new Anony() {
			public void test(){
				System.out.println("익명클래스 테스트입니다.");
			}
		};

        // 'Normal_Class'의 객체 생성과 함께 {} 대괄호 안에 일반 메서드 오버라이딩
		Normal_Class test2 = new Normal_Class() {
			public void test2() {
				System.out.println("익명클래스 테스트2입니다.");
			}
		};

		test.test(); // "익명클래스 테스트입니다." 출력
		test2.test2(); // "익명클래스 테스트2입니다." 출력

	}
}

익명클래스의 사용

익명 클래스는 앞서 말했듯 일회용으로 쓰는 임시 클래스입니다.

한 두가지 기능을 위해 번거롭게 클래스를 만들고 오버라이딩할 필요없이 객체생성때 한번에 처리합니다.

게다가 extends, implements 같은 명령어도 필요없으니 편하게 사용할 수 있습니다.

다만 명령어는 없어도 상속하는 것과 마찬가지의 효과를 가져옵니다.

Leave a comment