ABOUT ME

기술 블로그

Today
Yesterday
Total
  • 중첩 클래스(outer class, nested class, local class, anonymous class)
    JAVA 2023. 5. 2. 16:28
    1. 자바에서는 클래스 안에서 클래스를 정의할 수 있다.
      1. 내부에 클래스를 가지고 있는 클래스를 외부클래스(outer class)라고 한다.
      2. 클래스 내부에 포함되는 클래스를 중첩 클래스(nested class)라고 한다.
    2. 중첩 클래스의 종류
      1. 정적 중첩 클래스 - 앞에 static이 붙어서 내장되는 클래스
      2. 비정적 중첩 클래스 - static이 붙지 않은 일반적인 중첩 클래스
        1. 내부 클래스 - 클래스의 멤버처럼 선언되는 중첩 클래스
        2. 지역 클래스 - 메소드의 몸체 안에서 선언되는 중첩 클래스
        3. 익명 클래스(anonymouse class) - 수식의 중간에서 선언되고 바로 객체화되는 클래스
    3. 지역 클래스(local class)
      1. 지역 클래스는 메소드 안에 정의되는 클래스이다.
      2. 지역 클래스는 abstract 또는 final로만 지정할 수 있다.
    4. 중첩 클래스를 사용하는 이유
      1. 중첩 클래스는 외부 클래스의 멤버가 private로 선언되어 있더라도 접근할 수 있다.
      2. 중첩 클래스는 외부에서 보이지 않는다. 즉 철저하게 감춰진다.
      3. 익명 클래스는 콜백 메소드(callback method)를 작성할 때 아주 편리하다.
    5. 익명 클래스(anonymous class)
      1. 익명 클래스는 클래스 몸체는 정의되지만 이름이 없는 클래스이다.
        1. 익명 클래스는 클래스를 정의하면서 동시에 객체를 생성하게 된다.
        2. 이름이 없기 때문에 한 번만 사용이 가능하다.
        3. 익명 클래스는 코드의 양을 줄일 수 있는 장점도 있지만 반면에 표기법이 상당히 난해하다.
        4. 익명 클래스는 하나의 객체만 생성하면 되는 경우에 많이 사용된다.
        5. 익명 클래스는 부모 클래스에서 상속을 받아서 작성하거나 인터페이스를 구현하여서 작성할 수 있다.

    'JAVA' 카테고리의 다른 글

    댓글