본문 바로가기
java

내부 클래스 (Inner Class)

by 코디드 2023. 6. 18.

정의

 

- 하나의 클래스 내부에 선언된 또 다른 클래스

- 보통 두 클래스가 서로 긴밀한 관계가 있거나, 하나의 클래스 또는 메소드에서만 사용되는 클래스일때 사용

 


장점

 

1. 클래스의 논리적 그룹화

  - 내/외부 클래스 통합관리로 유지보수, 코드 이해 간편

  - 내부 클래스로 인해 새로운 클래스 생성 하지않아도 됨 > 패키지 간소화

 

2. 타이트한 캡슐화 적용

  - 외부 접근 차단

  - 내부 클래스에서 외부 클래스의 멤버들을 제약 없이 쉽게 접근 가능 > 구조적 프로그래밍 가능

  - 클래스 구조를 숨겨 코드의 복잡성 ↓

 

3. 가독성 좋고 유지 관리가 쉬워짐

  - 특정 클래스 안에서만 사용하기 때문에 연관관계 생각없이 내부에 선언해 직관적으로 사용

 


종류

 

인스턴스 클래스

  - 외부 클래스의 멤버변수 선언 위치에 선언

  - static 선언 불가. 단, 상수(변하지 않는 값)인 final static 선언은 가능.

 

 

스태틱 클래스

  - 외부 클래스의 멤버변수 선언 위치에 선언

  - 외부 클래스의 static 멤베처럼 취급

 

 

지역 클래스

  - 외부 클래스의 메소드나 초기화 블럭 안에 선언

 

 

익명 클래스

  - 클래스의 선언과 객체의 생성을 동시에 함

  - 이름이 없음

  - 클래스를 일회용으로 사용할때 자주 이용

 

 

참고 : https://inpa.tistory.com/entry/JAVA-%E2%98%95-%EB%82%B4%EB%B6%80-%ED%81%B4%EB%9E%98%EC%8A%A4Inner-Class-%EC%9E%A5%EC%A0%90-%EC%A2%85%EB%A5%98

 

☕ 내부 클래스(Inner Class) 장점 & 종류 총정리

내부 클래스 (Inner Class) 내부 클래스(inner class)란 하나의 클래스 내부에 선언된 또 다른 클래스를 의미한다. 보통 사용자 클래스 자료형이 필요하면, 메인 클래스 외부에 선언하거나, 따로 독립적

inpa.tistory.com

 

강의 자료 >  Java004_oop > OuterClass.java / MethodInnerClass.java / AnonymousInnerClass.java / Sample.java