반응형
자바 익명 클래스 는 이름이 없는 클래스 이다.
예를 들어보자.
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(); 메소드를 호출했다.
[ 결과 창 ]
생성자 입니다
익명 클래스 오버라이딩 입니다.
그럼 이런 익명 클래스는 어디서 많이 사용할까?
바로, 추상 클래스 나 인터페이스에서 많이 사용이 된다.
이 부분은 다음 포스팅에서 다루어 보자.
감사합니다 :)
반응형
'앱 만들기 > 안드로이드 study' 카테고리의 다른 글
안드로이드 스튜디오 API 문서 보기 (0) | 2020.08.28 |
---|---|
자바 인터페이스 란? (6) | 2020.08.26 |
안드로이드 쓰레드 (6) | 2020.08.24 |
안드로이드 반복 작업이 필요할때 - 핸들러 사용하기 (6) | 2020.08.21 |
애드몹 광고 적용하기 - 기본 준비. (7) | 2020.08.20 |
댓글