익명클래스

dy7888·2023년 8월 25일
0

익명 클래스란?

이름이 없는 일회용 클래스. 클래스 정의와 객체 생성이 동시에 이루어진다. 딱 하나의 객체만 필요할 경우 사용된다.

  • 필드 / 로컬변수 의 초기값, 매개변수의 매개값으로 사용
  • 익명 객체는 단독으로 생성할 수 없고 클래스를 상속하거나 인터페이스를 구현해야만 생성
  • UI 이벤트 처리 객체나 스레드 객체를 간편하게 생성할 목적으로 익명 객체가 많이 활용

익명 클래스 사용법

부모클래스이름 변수명 = new 부모클래스 이름 { 내용 구현 };
인터페이스이름 변수명 = new 인터페이스 이름 { 내용 구현 };

보통의 자바 클래스에서는,

// 1.클래스 정의
class MyClass {
    ...
}

// 2.객체 생성
MyClass myClass = new MyClass();

이런식으로 이루어진다.

하지만 익명 클래스는,

// 생성과 정의를 동시에
Object myClass = new Object() {
    void myMethod() {
        ...
    }
};

익명 클래스 사용 예제

1) 클래스 및 인터페이스 정의

public class Person { 
String name;
	
	public Person(String name) {
		this.name = name;
	}
	
	public void speak() {
		System.out.println("내용없음");
	};
}

interface Dancer {
	void dance();
}

2) 객체 생성 및 실행

public class HelloWorld {
	public static void main(String[] args) {
		
		Person p1 = new Person("홍길동") {
			@Override
			public void speak() {
				System.out.println(name + "입니다");
			}
		};
		p1.speak();
		
		
		Dancer d1 = new Dancer() {
			@Override
			public void dance() {
				System.out.println("춤을춥니다");
			}
		};
		d1.dance();
	}
}

✅ 컴파일 시에는 익명 클래스는 이름이 없기 때문에 외부클래스명$숫자.class 형식으로 파일이 생성된다.
예) FileName$1.class

profile
나의 기록하는 개발 일지

0개의 댓글