본문 바로가기

Java/information

[자바/JAVA] 익명 객체

익명 객체
-이름이 없는 객체
명시적으로 클래스를 선언하지 않기 때문에 쉽게 객체를 생성할수 있음
-필드값, 로컬 변수값, 매개변수값으로 주로 사용
1)익명 자식 객체
-부모 클래스를 상속받아 생성되는 객체
-부모 타입의 필드, 로컬 변수, 매개 변수의 값으로 대입할 수 있음
2)익명 구현 객체
-인터페이스를 구현해서 생성되는 객체
-인터페이스 타입의 필드, 로컬변수, 매개변수의 값으로 대입할 수 있음
-안드로이드와 같은 UI 프로그램에서 이벤트를 처리하는 객체로 많이 사용


new 부모 생성자(매개값...){
필드
메소드
};
익명 자식 객체(무명 클래스)는 프로그램에서 일시적으로 한번만 사용되고 버려지는 객체로 익명객체를 만드려면 단독으로 생성할 수 없고 부모 클래스를
상속받아 생성되며 부모 타입의 필드, 로컬 변수, 매개변수의 값으로 대입할 수 있다.

1)필드에 익명 자식 객체를 대입 
생성자 다음에 중괄호를 여닫으며 해당 생성자 이름에 해당하는 클래스를 상속받는 익명 객체를 만든다는 의미이다.
익명 클래스를 만드는 이유는 상속받는 클래스를 따로 정의하지 않고 바로 사용하는 편리함 때문이다. 일반 클래스와 다른 점은 생성자를 선언할 수 없다는 점이다.
중괄호 안에 필드를 선언하거나 메소드를 선언하거나 부모 메소드를 재정의하는 코드가 주로 온다.
익명 자식 객체를 생성하는 문구는 하나의 실행문이므로 ;을 반드시 붙어야 한다.
2)메소드의 필드로 활용
3)메소드 내에서 로컬 변수를 선언할 때 초기값으로 익명 자식 객체를 생성해 대입 가능하다.
4)메소드의 매개변수가 부모 타입일 경우 메소드 호출 코드에서 익명 자식객체를 생성해서 매개값으로 대입할 수도 있다.

익명 구현 객체는 인터페이스를 구현해서
new 인터페이스(){
필드
추상 메소드를 구현한 실체 메소드
};
방식으로 생성되며 이렇게 생성된 객체는 인터페이스 타입의 필드, 로컬변수, 매개변수의 값으로 대입할 수 있다.

1)필드에 익명 구현 객체 대입
인터페이스 생성자 다음에 중괄호를 여닫으면 해당 인터페이스를 상속받는 이름없는 객체를 만든다는 의미
추상 메소드를 구현한 실체 메소드 ;이 빠지면 안됨
2)메소드에서 필드로 이용
3)메소드의 로컬 변수로 익명 구현 객체를 대입
4)메소드의 매개변수로 이용



'Java > information' 카테고리의 다른 글