익명 클래스 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