[JAVA] 자바 - 익명 구현(anonymous) (인터페이스 익명 구현)
by mini_min[JAVA]
자바 - 익명 구현(anonymous) (인터페이스 익명 구현)
✔️ 익명 구현(anonymous) (인터페이스 익명 구현)
익명 구현이란, 클래스 또는 인터페이스에 대한 객체를 생성하면서 바로 클래스와 인터페이스를 정의하는 클래스다. 정의하는 부분과 생성하는 부분이 하나로 묶여져서 new 수식이 있는 곳에서 바로 클래스를 정의하거나 인터페이스를 구현!
💡 익명 클래스를 컴파일하면 : "외부클래스명$1.class" 처럼 외부 클래스 이름에 차례대로 번호가 붙어 클래스 파일이 생성된다.
💡 형식
- 익명 클래스 객체
상위클래스명 객체 = new 상위클래스명() {
//클래스 구현
}
- 익명 구현 객체 (모든 메소드 구현)
인터페이스명 객체 = new 인터페이스명() {
//인터페이스에 선언한 추상 메소드 구현
}
interface Demo7 {
public void disp();
}
public static void main(String[] args) {
Demo7 dd = new Demo7() //인터페이스명 그대로
//생성자에 인터페이스명 쓰면 모든 메소드 구현(인터페이스 익명 구현)
@Override
public void disp() {
System.out.println("disp...");
}
};
dd.disp();
◾ 익명 구현 예시
interface Demo5 {
public void disp();
}
class Test5 {
public void sub(){
// 익명 클래스
//컴파일하면 Test5$1.class 형식의 클래스가 만들어짐
Demo5 dd = new Demo5() {
@Override
public void disp() {
System.out.println("disp...");
}
};
dd.disp();//생성하고 호출
}
public static void main(String[] args) {
Test5 t = new Test5();
t.sub();
}
}
💡 헷갈리는 것 주의!!
객체 생성 : Demo5 ob = new Demo5();
익명 구현 : Demo5 dd = new Demo5() { @Override public void disp() { System.out.println("disp..."); } };
new 수식에서 바로 정의!!
객체 생성과 헷갈리지 않기
'Java' 카테고리의 다른 글
[JAVA] 자바 - 예외 처리(Exception) & 예외 넘기기(throws) ⭐⭐ (0) | 2022.07.27 |
---|---|
[JAVA] 자바 - static 중첩 클래스 & 내부 클래스(member class) (0) | 2022.07.27 |
[JAVA] 자바 - 인터페이스와 추상 클래스 (2) (0) | 2022.07.26 |
[JAVA] 자바 - 인터페이스 (interface) 정의 (1) (0) | 2022.07.26 |
[JAVA] 자바 - 추상화 클래스(abstract 클래스) (0) | 2022.07.26 |
블로그의 정보
개발자 미니민의 개발로그
mini_min