English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Java 기본 튜토리얼

Java 흐름 제어

Java 배열

Java 객체 지향(I)

Java 객체 지향(II)

Java 객체 지향(III)

Java 예외 처리

Java 리스트(List)

Java Queue(큐)

Java Map 콜렉션

Java Set 콜렉션

Java 입력 출력(I/O)

Java Reader/Writer

Java 다른 주제

Java 익명 클래스

이 튜토리얼에서는 예제를 통해 Java의 애니밍 클래스를 배웁니다.

Java에서는 클래스가 다른 클래스를 포함할 수 있습니다. 이름을 제공하지 않고 내부 클래스를 생성할 수 있습니다.

이름이 없는 내부 클래스는 애니밍 클래스라고 합니다.

애니밍 클래스는 다른 클래스 내에서 정의되어야 합니다. 따라서 이를 애니밍 내부 클래스라고도 합니다. 그 문법은 다음과 같습니다:

class outerClass {
    //애니밍 클래스 정의
    object1 = new Type(parameterList) {
         //애니밍 클래스 본문
    };
};

애니밍 클래스는 일반적으로 서브클래스를 상속하거나 인터페이스를 구현합니다.

여기서,형식(Type)될 수 있습니다

  1. 애니밍 클래스가 상속하는 슈퍼클래스

  2. 애니밍 클래스가 구현하는 인터페이스

위 코드는 실행 중에 애니밍 클래스의 객체 object를 생성합니다.1

주의:애니밍 클래스는 표현식 내에서 정의됩니다. 따라서 애니밍 클래스의 마지막 부분에서 세미콜론을 사용하여 표현식의 마지막을 나타냅니다.

예제1애니밍 내부 클래스 클래스 상속

class Polygon {
   public void display() {
      System.out.println("Polygon 클래스 내부");
   };
};
class AnonymousDemo {
   public void createClass() {
      //애니밍 클래스 생성, Polygon 클래스 상속
      Polygon p1 = new Polygon() {
         public void display() {
            System.out.println("익명 클래스의 내부.");
         };
      };
      p1.display();
   };
};
class Main {
   public static void main(String[] args) {
       AnonymousDemo an = new AnonymousDemo();
       an.createClass();
   };
};

출력 결과

익명 클래스의 내부

위 예제에서, Polygon 클래스를 생성했습니다. 이 클래스는 display() 메서드 하나만 있습니다.

그런 다음, Polygon 클래스를 상속하고 display() 메서드를 재정의한 애니밍 클래스를 생성했습니다.

이 프로그램을 실행할 때, 애니밍 클래스의 객체 p를 생성합니다.1그런 다음, 이 객체는 애니밍 클래스의 display() 메서드를 호출합니다.

예제2애니밍 클래스 인터페이스 구현

interface Polygon {
   public void display();
};
class AnonymousDemo {
   public void createClass() {
      //애니밍 클래스 인터페이스 구현
      Polygon p1 = new Polygon() {
         public void display() {
            System.out.println("익명 클래스의 내부.");
         };
      };
      p1.display();
   };
};
class Main {
   public static void main(String[] args) {
      AnonymousDemo an = new AnonymousDemo();
      an.createClass();
   };
};

출력 결과

익명 클래스의 내부

위의 예제에서는 Polygon 인터페이스를 구현하는 익명 클래스를 생성했습니다.

익명 클래스의 장점

익명 클래스에서 필요할 때마다 객체를 생성합니다. 즉, 특정 작업을 수행하기 위해 객체를 생성합니다. 예를 들어,

Object = new Example() {
   public void display() {
      System.out.println("익명 클래스가 display() 메서드를 재정의합니다.");
   };
};

여기서 display() 메서드를 재정의할 필요가 있을 때, 익명 클래스의 객체가 동적으로 생성됩니다.

익명 클래스는 코드를 간결하게 만들어 줍니다.