본문 바로가기
3.1 SpringBoot/Java

[Java/기초] 내부클래스

by Dohi._. 2024. 7. 14.
728x90

내부클래스(Inner Class)

클래스 안에 선언한 클래스를 의미

긴밀한 관계가 있는 클래스를 클래스 안에 선언하여 사용하는 방법

특징

  • 내부 클래스에서 외부 클래스 멤버에 접근가능
  • 외부에서는 내부 클래스에 접근 불가
  • 코드의 복잡성을 줄임

종류

  • 인스턴스 클래스 (instance class)
    • 외부 클래스의 멤버변수 선언 위치에 선언
    • static class는 바로 접근가능 
  • 정적 클래스 (static class)
    • 외부 클래스의 멤버변수 선언 위치에서 선언하는 static 키워드가 붙은 내부 클래스
    • 외부클래스는 static이 아니라 정적클래스에서 외부클래스 변수를 사용할경우 경고
  • 지역 클래스 (local class)
    • 외부 클래스의 메소드안에서 선언
    • 선언된 메서드 블록 영역 내부에서만 사용가능
  • 익명 클래스 (anonymous class)
    • 클래스의 선언과 객체의 생성을 동시에 하는 이름없는 클래스
    • 일회용 클래스

인스턴스 클래스 예시

class A{
  class B{ //인스턴스

  }
}

A.B n = new A().B();

정적 클래스 예시

class A{
  static class B{ //인스턴스

  }
}

A.B n = new A.B();

익명클래스 예시

클래스명 변수명 = new 클래스명(){
    //클래스정의부
}

추상클래스를 만들어 놓고 
사용할때마다 익명클래스로 구현해도 된다

728x90

'3.1 SpringBoot > Java' 카테고리의 다른 글

[java/기초] 예외처리  (0) 2024.07.16
[Java/기초] 입출력  (0) 2024.07.14
[java/기초] 인터페이스  (0) 2024.07.13
[java/기초] 추상클래스  (0) 2024.07.13
[java/기초] 다형성  (0) 2024.07.11

댓글