본문 바로가기

📚Study Note/JAVA

[ JAVA ] 클래스 고급 - 중첩 클래스 ④

● Annonymous 클래스(익명의 클래스 = 무명클래스)

AWT SWING 윈도우제공리소스들=윈폼 메모장같은것들 설치마법사
비디오대여 연체료 그때사용한게 AWT SWING
이벤트 (클릭. 드래그 확대 축소 등) 객체지향관점에서는 


- AWT 나 안드로이드 이벤트 처리에서 일반적으로 사용
- 상위 클래스 메소드를 하나 정도 재정의할 필요성이 있을 때 사용
- 클래스의 객체가 필요하면 또 다시 클래스를 생성해야 하는 번거로움 때무에
익명의 클래스를 생성하여 처리한다.

● 형식 및 구조
new 상위클래스의생성자()
{
접근제어지시자 자료형 메소드()
{
// ...;
}

}; ← 반드시 세미콜론 필요함

 

 

 

 

// import java.lang.*;

class Test //상속된게 없다? 아니다. 안보이더라도 extends Object 가 있는 것이다. Object클래스를 상속받는 중
{			//그러면 extends SuperTest 등 단일상속이 아니라면? extends라는 키워드가 쓰이지 않은 아이들만 Object상속
			// 모든 클래스는 object를 상속받는다고 했다. SuperTest도 올라가보면 extends Object
			// 그렇기때문에 object를 상속받지 않는 클래스가 없으며 단일상속이라는 문법이 깨진것도아니다
			// 보이는 상속관계가 없다면 부모클래스는 Object 이다. 
			// 위치는 자바닷랭 패키지 안에. 따라서 모든 클래스는 예외없이 보이지는않지만
			// import java.lang.*; (String도 System도 _빨간색처리_이 패키지 안에 들어있다. )
			// 배열.clone();

		//super...;

	public Object getString()
	{
		return new Object() 
		{
			@Override
			public String toString()
			{
				return "익명의 클래스...";
			}
		}; //← 세미콜론(미 작성 시 에러 발생)


	}
}

public class Test120
{
	public static void main(String[] args)
	{
		Test ob1 = new Test();
		Test ob2 = new Test();
		
		System.out.println(ob1.toString());
		//-==>>Test@15db9742
		System.out.println(ob1.getString());
		//-==>>익명의 클래스...
	}
}