익명 객체

2022. 4. 22. 18:45java/java

*익명 객체 : 이름이 없는 객체

 1) 익명 객체는 단독으로 생성할 수 없다.

       -클래스를 상속하거나 인터페이스를 구현해야만 생성할 수 있다.

   2) 사용 위치

       -필드의 초기값, 로컬 변수의 초기값, 매개변수의 매개값으로 주로 대입된다.

       -UI 이벤트 처리 객체나, 스레드 객체를 간편하게 생성할 목적으로 주로 활용된다.

 

 

*익명 자식 객체 생성

 

부모클래스 [필드|변수] = new 부모클래스(매개값...) {
	//필드
    //메소드
}

 

필드 초기값

class A {
    Parent field = new Parent() {
    	int childfield;
        
        void childMethod() {
     
        }
        @Override
        void parentMethod() {}           //parentMethod 오버라이드
    }
}

 

로컬 변수 초기값

class A {
	void method() {
    	Parent localVar = new Parent() {		//로컬 변수 선언
        	int childField;
            void childMethod() {}
            
            @Override
            void parentMethod() {}
        }
    }
}

 

메소드의 매개값

class A {
	void method(Parent parent) {}
    
    void method1() {
    	method(
        	new Parent() {
                int childField;
                void childMethod() {}

                @Override
                void parentMethod() {}
           }
    );
}

1) 익명 객체에 새롭게 정의된 필드와 메소드

    -익명 객체 내부에서만 사용된다.

    -외부에서는 익명 객체의 필드와 메소드에 접근할 수 없다.

      (익명 객체는 부모 타입 변수에 대입되므로 부모 타입에 선언된 것만 사용할 수 있다.)

 

'java > java' 카테고리의 다른 글

작업 스레드 생성과 실행  (0) 2022.04.22
프로세스와 스레드  (0) 2022.04.22
중첩 클래스  (0) 2022.04.21
중첩 클래스와 중첩 인터페이스란?  (0) 2022.04.20
디폴트 메소드와 인터페이스 확장  (0) 2022.04.19