앱 만들기/안드로이드 study

자바 익명 클래스 란?

나도처음이야 2020. 8. 25.
반응형

자바 익명 클래스 는 이름이 없는 클래스 이다.

예를 들어보자.

 

A a = new A(); 

 

위 처럼 A 라는 객체를 생성하면, a 라는 인스턴스 변수가 new A() 라는 메모리 영역을 가리킨다.

즉, a 인스턴스 변수를 사용해서 지속적으로 멤버 변수와 함수에 접근하며 사용이 가능하다.

하지만, 익명 클래스는 이름이 없다.

 

new A(); 

 

이렇게 생겼기에,,, 메모리 공간에 객체가 생성되고 그 공간을 가리키는 인스턴스 변수가 없기에

한번 만 사용할 수 있겠다.

하기 예제를 보자.

 

익명 클래스로 사용될 Anonymous 클래스 를 만들었다.

public class Anonymous {

	public Anonymous() {
		System.out.println("생성자 입니다");
	}
	
	public void print() {
		System.out.println("익명 클래스 메소드 입니다.");
	}
}

Main 에서 new Anoymous() 로 익명클래스를 사용한다.

즉, 인스턴스 변수가 없다.  그럼 어떻게 사용할까?

public class Main {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		
		new Anonymous() {
			
			public void print() {
				System.out.println("익명 클래스 오버라이딩 입니다.");
			};
		}.print();			
			
	}

}

익명 클래스에 정의된 함수를 오버라이딩 하기 위해 주로 많이 사용된다.

위 예제에서는 print() 를 오버라이딩 했고, 테스트 출력을 위해서 바로 .print(); 메소드를 호출했다.

 

[ 결과 창 ]

생성자 입니다
익명 클래스 오버라이딩 입니다.

 

그럼 이런 익명 클래스는 어디서 많이 사용할까?

바로, 추상 클래스 나 인터페이스에서 많이 사용이 된다.

이 부분은 다음 포스팅에서 다루어 보자.

감사합니다 :)

 

반응형

댓글