Java/Java
[Java] Anonymous Class(익명클래스) 란?
박만자
2021. 3. 2. 21:32
Anonymous Class(익명클래스)란 사전적정의로는 이름이 없는 클래스이다.
하지만 이렇게 말하니 너무 어렵지 않은가?
조금 풀어서 설명하자면 익명클래스는 클래스의 필드와 메소드를 재구성 또는 재정의 하여
일회용으로 사용할 수 있게끔 만드는 일종의 문법이다.
보통 해당 클래스에서만 사용되고 다른 클래스에서 사용되지 않는 경우에 익명클래스를 사용한다.
익명클래스는 생성자뒤에 블록을 씌워준 형태로 사용되며 블록끝에 세미콜론(;)을 붙여줘야 한다.
class MyClass{
void methodA() {
System.out.println("methodA입니다.");
}
void methodB() {
System.out.println("methodB입니다.");
}
}
public class Anonymous {
public static void main(String[] args) {
MyClass mc1 = new MyClass();
MyClass mc2 = new MyClass() {
@Override
void methodA() {
System.out.println("익명클래스로 오버라이딩한 메소드입니다.");
}
};
mc1.methodA();
mc2.methodA();
mc1.methodB();
mc2.methodB();
}
}
위 코드를 살펴보자.
MyClass라는 클래스를 선언해주었고 그안에 methodA() 와 methodB() 메소드를 선언해 주었다.
mc1은 MyClass를 인스턴스로 받고 있고 mc2는 MyClass의 methodA() 메소드를 오버라이딩하여 선언해주었다.
각각의 두 메소드를 실행시켜보자.
mc2의 methodA() 메소드와 mc1의 methodA()가 다르게 나오는 것을 확인할 수 있다.
이처럼 익명클래스를 이용하면 보다 쉽게 코드를 작성할 수 있다.