2. 익명 클래스( annoymous class, 이름없는 클래스 ) ==> 람다표현식
1) 중첩클래스 범주에 속함.
2) 용도: 인터페이스( interface ) 사용할 때 익명클래스를 적용할 수 있다.
3) 문법:
ex)
public interface Flyer {
public abstract void fly( );
}
// 1. 일반적인 방법 ( 이름있는 클래스 이용 )
가. 하위클래스 작성
public class Bird implements Flyer {
@Override
public void fly( ) {
}
}
나. 하위클래스 객체생성
Bird b = new Bird( );
b.fly( );
// 다형성 적용
Flyer b2 = new Bird( );
b2.fly( );
// 2. 익명 클래스 ( 이름없는 클래스 이용 )
문법: 인터페이스명 변수명 = new 인터페이스명( ) {
// 추상메서드 재정의
};
변수명.메서드( );
Flyer f = new Flyer( ) {
@Override
public void fly( ) {
}
};
f.fly( );
package exam17_중첩클래스;
// interface
interface Flyer {
public abstract void fly();
}
// 1. 일반적인방법 ( 이름있는 클래스 이용 )
class Bird implements Flyer {
@Override
public void fly() {
System.out.println("Bird.fly() 호출");
}
}
public class TestMain6_AnonymousInnerClass {
public static void main(String[] args) {
// 1. 일반적인 방법 ( 이름있는 클래스 이용 )
Flyer b = new Bird(); // 다형성
b.fly();
// 2. 익명클래스 ( * )
Flyer f = new Flyer() {
@Override
public void fly() {
System.out.println("익명클래스: Flyer.fly() 호출");
}
};
f.fly();
// Flyer f2 = new + ctrl + space ( 이클립스 단축코드 )
Flyer f2 = new Flyer() {
@Override
public void fly() {
System.out.println("익명클래스: Flyer.fly() 호출(2)");
}
};
f2.fly();
}// end main
}// end class
'Programming > JAVA(eclipse)' 카테고리의 다른 글
java 11일차 _ 10일차 정리 (0) | 2024.03.22 |
---|---|
java 10 일차 _ 04. 람다식 (0) | 2024.03.21 |
java 10 일차 _ 02. 중첩클래스 (0) | 2024.03.21 |
java 10일차 _ 01. 인터페이스( loosely Coupling ) (0) | 2024.03.21 |
java 10일차 _ 01. 인터페이스( interface tightCoupling ) (0) | 2024.03.21 |