ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 익명 클래스(anonymous class)
    백엔드/자바 2020. 8. 11. 01:01

    익명 클래스란?

    클래스의 선언과 객체 생성과 동시에 단 한번 사용할 수 있게 만든 클래스를 말한다.

     

    그래서 단 한번만 사용되고 오직 하나의 객체만 생성가능한 일회용 클래스이다.

     

    이름이 없어서 생성자를 가질 수 없고 단 하나의 클래스를 상속받거나 하나의 인터페이스만 구현 가능하다.

     

    익명 클래스의 구조는 다음과 같다.

     

    인터페이스 자료형 + 참조변수명 = new + 인터페이스 자료형 ( ) + { 인터페이스의 메서드 오버라이딩 }

     

    interface Anony{  // 'Anony' 인터페이스 선언
    	void test();  // 'test' 추상 메서드 선언
    }
    
    class Normal_Class{  // 'Normal_Class' 일반 클래스 선언
    	public void test2(){};  // 'test2' 일반 메서드 선언
    }
    
    public class main {
    
    	public static void main(String[] args) {
    		
            // 'Anony'의 객체 생성과 함께 {} 대괄호 안에 인터페이스의 추상 메서드 오버라이딩
    		Anony test = new Anony() {
    			public void test(){ 
    				System.out.println("익명클래스 테스트입니다."); 
    			}
    		};
    		
            // 'Normal_Class'의 객체 생성과 함께 {} 대괄호 안에 일반 메서드 오버라이딩
    		Normal_Class test2 = new Normal_Class() {
    			public void test2() {
    				System.out.println("익명클래스 테스트2입니다.");
    			}
    		};
    		
    		test.test(); // "익명클래스 테스트입니다." 출력
    		test2.test2(); // "익명클래스 테스트2입니다." 출력
    
    	}
    }

     

    별도의 implements같은 명령어는 필요 없고 인터페이스의 객체를 생성한다.

     

    객체 생성자 뒤에 대괄호 '{ }'를 입력하고 그 안에 오버라이딩할 메서드를 재정의해주면 된다.

     

    일반 클래스도 동일하다. extends같은 별도의 명령어는 필요없다.

     

    오버라이딩하려는 메서드가 있는 클래스의 객체를 생성한다.

     

    객체 생성자 뒤에 괄호 '{ }'를 입력하고 그 안에 오버라이딩할 메서드를 재정의 해주면 된다.

    익명클래스의 사용

    익명 클래스는 앞서 말했듯 일회용으로 쓰는 임시 클래스다.

     

    한 두가지 기능을 위해 번거롭게 클래스를 만들고 오버라이딩할 필요없이 객체생성때 한번에 처리한다.

     

    게다가 extends, implements 같은 명령어도 필요없으니 편하게 사용할 수 있다.

     

    다만 명령어는 없어도 상속하는 것과 마찬가지의 효과를 가져온다.

     

    '백엔드 > 자바' 카테고리의 다른 글

    예외 처리하기 try - catch 문  (0) 2020.08.11
    오류와 예외(Error, exception)  (0) 2020.08.11
    추상클래스, 인터페이스와 다형성  (0) 2020.08.07
    인터페이스 (interface)  (0) 2020.08.07
    추상 클래스 (abstract class)  (0) 2020.08.06
Designed by Tistory.