[Java] 내부 클래스와 익명 클래스

2023. 2. 16. 17:52·Java/Base
728x90
728x90

내부 클래스 (Inner class, 중첩 클래스)

  - 클래스 내부에서 선언한 다른 클래스

      → 해당 클래스를 감싸고 있는 '외부 클래스'와 밀접한 연관이 있는 경우가 많음

  - 다른 외부 클래스에서 사용할 일이 없는 경우에는 내부 클래스로 선언하는 것을 고려할 수 있음

      → 장점 : 내부 클래스에서 외부 클래스의 멤버 변수에 접근하기 쉬움

                       (코드의 복잡성을 줄임)

 

// 외부 클래스의 인스턴스화
외부클래스 참조변수 = new 외부클래스();

// 내부 클래스의 인스턴스화 (내부 클래스에 private 선언 시 사용 불가)
외부클래스.내부클래스 참조변수 = 외부클래스.new 내부클래스();

 

#  인스턴스 내부 클래스

  - 내부적으로 사용한 클래스 (private 권장)

  - 정적 내부 클래스와의 차이점

      : 외부 클래스가 생성된 후 내부 클래스가 생성됨

          → 외부 클래스와 내부 클래스가 모두 인스턴스화되어야 사용 가능함

#  정적 내부 클래스 (Static)

  - static 키워드가 붙는 내부 클래스

#  지역 내부 클래스 (local)

  - 지역변수처럼, 메서드 내부에서 정의해서 사용하는 클래스

 

 


익명 클래스

  - 이름(참조변수)이 없는 클래스 → 일회용으로 사용됨

 

// 익명 클래스

new 클래스명();

 

익명 구현 클래스

  - 원래의 추상 클래스 or 인터페이스는 new 키워드를 통해 인스턴스화할 수 없음

      → 익명 구현 클래스를 이용하여 new 키워드를 사용할 수 있음

  - 익명 구현 클래스를 사용하면 implements 키워드를 사용하지 않아도 됨

 

// 예시 //

area.addKeyListener(new KeyListener() {

    @Override
    public void keyTyped(KeyEvent e) {
    }
    @Override
    public void keyReleased(KeyEvent e) {
    }
    @Override
    public void keyPressed(KeyEvent e) {
    }

});

 

320x100
반응형
저작자표시 비영리 변경금지 (새창열림)

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

[Java] 쓰레드 (Thread)  (0) 2023.02.19
[Java] 제네릭 (Generic)  (0) 2023.02.17
[Java] 오류와 예외 처리  (0) 2023.02.15
[Java] Object 클래스  (0) 2023.02.14
[Java] 인터페이스 - DAO 구현  (0) 2023.02.13
'Java/Base' 카테고리의 다른 글
  • [Java] 쓰레드 (Thread)
  • [Java] 제네릭 (Generic)
  • [Java] 오류와 예외 처리
  • [Java] Object 클래스
스응
스응
    반응형
    250x250
  • 스응
    이서영의 개발 블로그
    스응
  • 전체
    오늘
    어제
  • 글쓰기 관리
    • 분류 전체보기 (384)
      • Java (134)
        • Base (54)
        • Spring Boot (37)
        • JSP (16)
        • Swing (GUI) (20)
        • Design Pattern (7)
      • C# (13)
      • PHP (18)
      • SQL (27)
      • Vue.js (9)
      • Tailwind CSS (4)
      • TypeScript (7)
      • HTML & CSS (27)
      • JavaScript (26)
      • jQuery (10)
      • Android (3)
      • - - - - - - - - - - - - - - (0)
      • Hotkeys (5)
      • CS (30)
      • etc. (13)
      • Error Note (16)
      • Team Project (24)
        • Airlines Web Project (12)
        • University Web Project (6)
        • Strikers 1945 GUI Project (6)
      • My Project (18)
        • Library Web Project (8)
        • Pet Shopping Mall GUI Project (10)
  • 블로그 메뉴

    • Home
    • Write
  • 링크

    • 깃허브
  • 공지사항

  • 인기 글

  • 태그

    jQuery
    typeScript
    vuejs
    면접
    git
    SQL
    Hotkeys
    티스토리챌린지
    tailwindcss
    SWAGGER
    java
    개발일지
    cs
    jsp
    zapier
    Codeigniter
    Android
    errorNote
    SpringBoot
    C#
    CSS
    Wordpress
    php
    Swing
    HTML
    js
    오블완
    SEO
    http
  • 최근 댓글

  • hELLO· Designed By정상우.v4.10.0
스응
[Java] 내부 클래스와 익명 클래스
상단으로

티스토리툴바