만자의 개발일지

[Java] Anonymous Class(익명클래스) 란? 본문

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()가 다르게 나오는 것을 확인할 수 있다.

이처럼 익명클래스를 이용하면 보다 쉽게 코드를 작성할 수 있다.

'Java > Java' 카테고리의 다른 글

[Java] Call by value 와 Call by reference  (0) 2021.06.16
[Java] Java에서 MySQL 접속하기  (0) 2021.05.02
[Java] String matches  (0) 2021.02.26
이클립스 .java 파일 cmd로 실행하기  (0) 2021.02.25
[Java] Switch 표현 정리  (2) 2021.02.24
Comments