-
익명 클래스(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