Day18 :) 내부클래스2 - 익명

Nux·2021년 9월 28일
0

자바웹개발

목록 보기
18/105
post-thumbnail

내부클래스

익명클래스

클래스이름 참조변수이름 = new 클래스이름(){
    // 메서드선언
};
  • 단어 그대로 이름이 없는 객체
  • 단 하나의 외부클래스를 상속받거나 인터페이스를 구현하여 즉석으로 생성한 객체
  • 따라서 반드시 부모(인터페이스, 추상클래스)가 필요함
  • 단독 생성 불가
  • 이름이 없기때문에 생성자를 가질 수 없음

익명클래스의 사용

1. 인터페이스
public abstract class Inter {
    public abstract void sample();
}

2. 익명클래스
public class App{
	public static void main(String[]args){
      Inter i = new Inter() {
          @Override
          public void sample() {
              System.out.println("Hello, World!");
          }
          i.sample();		// Hello, World!가 출력됨
      };
   }
}
  • 익명클래스 안에서 새로 정의된 메서드나 변수는 만들수는 있으나 실행 불가
3. 익명클래스2
public class App{
	public static void main(String[]args){
    
    	Inter i = new Inter() {
      	  
          public void test(){
          	  System.out.println("익명클래스 내부에서 정의된 메서드")
          }
          
          @Override
          public void sample() {
              System.out.println("Hello, World!");
          }
          i.test();			// 에러
      };
      	  i.test();			// 에러
   }
}
  • 익명클래스는 보통 이벤트의 Listener부분에 자주 사용됨

0개의 댓글