what?
이름 없는 클래스
why?
코드의 간결성을 높이기 위함
한 번만 사용할 클래스를 익명 클래스로 작성하면 작성과 인스턴스 생성이 동시에 되기 때문에, 불필요한 클래스 파일을 만들지 않아도 된다.
how?
기존의 클래스를 이용하되 오버라이딩
class ClassA{
void methodA(){
System.out.println("methodA");
}
void methodB(){
System.out.println("methodB");
}
}
class ClassB{
ClassA classA = new ClassA(){
//메서드 오버라이딩
void methodA(){
System.out.println("ClassB 안의 methodA");
}
}; //익명 클래스는 끝에 세미콜론 필요
classA.methodA(); //실행시 "ClassB 안의 methodA" 출력
ClassA classA2 = new ClassA();
classA2.a();
//익명 클래스는 일회용이기 때문에 다시 기존 메서드 실행("methodA" 출력)
}
인터페이스를 구현할 때도 사용
이 경우 인터페이스 내부의 모든 메서드를 재정의해야 함
'Java' 카테고리의 다른 글
[Java] 기본 API 클래스② currentTimeMilis, Calendar, Date (0) | 2024.04.03 |
---|---|
[Java] 기본 API 클래스① 문자열 클래스 (0) | 2024.04.02 |
[Java] 내부 클래스 (0) | 2024.03.31 |
[Java] 인터페이스 (0) | 2024.03.31 |
[Java] 추상 메서드와 추상 클래스 (0) | 2024.03.31 |