Test120 중첩 클래스 ④ / 무명 클래스(익명 클래스, annonymous class)
※ 무명 클래스(익명 클래스, annonymous class)
: 이름 없는 클래스
- 클래스 또는 인터페이스에 대한 객체를 생성하면서 바로 클래스 또는 인터페이스를 정의하는 클래스.
- 정의하는 부분과 생성하는 부분이 하나로 묶여져 new 수식이 있는 곳에서 바로 클래스 또는 인터페이스를 정의하는 것을 의미한다.
※ Annonymous 클래스 (익명 클래스 : 무명 클래스)
- awt 나 안드로이드 이벤트 처리에서 일반적으로 사용
- 상위 클래스 메소드를 하나 정도 재정의할 필요성이 있을 때 사용
- 클래스의 객체가 필요하면 또 다시 클래스를 생성해야 하는 번거로움 때문에 익명의 클래스를 생성하여 처리한다.
※ 형식 및 구조
new 상위클래스의 생성자()
{
접근제어지시자 자료형 메소드()
{
}
}; ← 반드시 세미클론 필요
※ 물리적인 파일 구조 상(탐색기 상에서) 『클래스명$1.class』 파일이 생성되며 $ 뒤의 숫자가 순차적으로 부여된다.
Test3.java
class Test3 // extends Object
{
/*
...
...
*/
public Object getString()
{
// return ___; ← Object
// Object ob = new Object();
// return ob;
// return new Object();
return new Object()
{
@Override
public String toString()
{
return "익명의 클래스...";
}
}; // ← 반드시 세미클론 필요함!! (미작성시 에러발생)
}
}
Test120.java
public class Test120 // extends Object
{
public static void main(String[] args)
{
Test3 ob1 = new Test3();
Test3 ob2 = new Test3();
System.out.println(ob1.toString());
System.out.println(ob2.getString());
//-- System.out.println(ob2.getString().toString()); 와 동일, toString()은 Object가 가진 메소드라 상속받아 불러와짐
//--==> Test3@6d06d69c
// 익명의 클래스...
}
}
cmd
Test3@2a3046da
익명의 클래스...
계속하려면 아무 키나 누르십시오 . . .
'Study Note > Java' 카테고리의 다른 글
JAVA_ Test122_ 『java.lang.Object』 클래스 / (Test121 와 비교) (0) | 2018.06.16 |
---|---|
JAVA_ Test121_ import 문 / 『java.lang.Object』 클래스 (0) | 2018.06.16 |
JAVA_ Test119_ 중첩 클래스 종류 / 지역 클래스(로컬 클래스, local class) (0) | 2018.06.16 |
JAVA_ Test118_ 중첩 클래스 종류 / 지역 클래스(로컬 클래스, local class) (0) | 2018.06.16 |
JAVA_ Test117_ 중첩 클래스 종류 / static 중첩 클래스 / 내부 클래스 / 지역 클래스 / 무명 클래스 (0) | 2018.06.16 |
댓글