[JAVA]익명클래스(anonymous class)

2010/07/21 13:33
내부 클래스를 만드는 주된 이유가
어떠한 타입으로 클래스를 만들어야 하는 경우가 있는데

내용이 간단하다면 복잡하게 또 따로히 java파일 만들어서
새로 클래스 만들면 번거롭고,

또 클래스가 틀리므로 변수값을 읽어 들일수가 없으므로 패키지
선언이라던지 import 해줘야 한다던지 이런 식으로 귀찮음이 발생할 수 있습니다.

그런 경우 내부 클래스로 만들면 간단하게 해결이 되지요..



그리고 딱 한번 쓰고 다시 쓸일이 없는 클래스 ( 보통 익명클래스로 만들게되죠..)

이럴 경우도 내부 클래스로 만들면 편리합니다.

shell.addShellListener(new ShellAdapter(){
public void shellClosed(ShellEvent e){
MessageBox box = new MessageBox
(shell,SWT.ICON_QUESTION | SWT.OK | SWT.CANCEL)
box.setText("확인");
box.setMessage("정말로 프로그램을 종료 하시겠습니까 ?");

int result =box.open();

if(result == SWT.OK){
//Event e
//시간, 위젯, 위치값 ,.........실행여부
e.doit = true;
}
else{
e.doit =false;
}
}
});

위의 소스중 다른색으로 칠해진 부분이 익명 내부 클래스의 선언부분이다
이소스는 이벤트가 발생된후 딱한번만 실행 되야하기때문에
new를 이용하여 이름이 없는 클래스를 생성한후 메소드들을 재정의 하여
사용한 다음에 소스 중간에 );찍어 클래스를 마무리 하고 있는 특이한 형태이다.
이벤트가 발생 하면 딱한번만 실행되야 하는 경우에 많이 쓰이게 된다

마우스가 클릭되는등의 마우스에 대한 이벤트를 잡아내는 이벤트클래스.
mousePressed메소드는 마우스가 이동할 경우 발생하는 이벤트에 대한 메소드

프레임 창 오른쪽 위에 [X] 버튼을 눌리면

새로운 창이 떠서 (닫을까요, 아니오)라고 물어서
OK눌리면 닫히고 NO눌리면 안닫히도록 동작하게 구현한것입니다.
이올린에 북마크하기
2010/07/21 13:33 2010/07/21 13:33


Hseog 분류없음

Trackback Address:http://odin.80port.net/blog2/hstech/trackback/317
[로그인][오픈아이디란?]