정의
- 하나의 클래스 내부에 선언된 또 다른 클래스
- 보통 두 클래스가 서로 긴밀한 관계가 있거나, 하나의 클래스 또는 메소드에서만 사용되는 클래스일때 사용
장점
1. 클래스의 논리적 그룹화
- 내/외부 클래스 통합관리로 유지보수, 코드 이해 간편
- 내부 클래스로 인해 새로운 클래스 생성 하지않아도 됨 > 패키지 간소화
2. 타이트한 캡슐화 적용
- 외부 접근 차단
- 내부 클래스에서 외부 클래스의 멤버들을 제약 없이 쉽게 접근 가능 > 구조적 프로그래밍 가능
- 클래스 구조를 숨겨 코드의 복잡성 ↓
3. 가독성 좋고 유지 관리가 쉬워짐
- 특정 클래스 안에서만 사용하기 때문에 연관관계 생각없이 내부에 선언해 직관적으로 사용
종류
인스턴스 클래스
- 외부 클래스의 멤버변수 선언 위치에 선언
- static 선언 불가. 단, 상수(변하지 않는 값)인 final static 선언은 가능.
스태틱 클래스
- 외부 클래스의 멤버변수 선언 위치에 선언
- 외부 클래스의 static 멤베처럼 취급
지역 클래스
- 외부 클래스의 메소드나 초기화 블럭 안에 선언
익명 클래스
- 클래스의 선언과 객체의 생성을 동시에 함
- 이름이 없음
- 클래스를 일회용으로 사용할때 자주 이용
☕ 내부 클래스(Inner Class) 장점 & 종류 총정리
내부 클래스 (Inner Class) 내부 클래스(inner class)란 하나의 클래스 내부에 선언된 또 다른 클래스를 의미한다. 보통 사용자 클래스 자료형이 필요하면, 메인 클래스 외부에 선언하거나, 따로 독립적
inpa.tistory.com
강의 자료 > Java004_oop > OuterClass.java / MethodInnerClass.java / AnonymousInnerClass.java / Sample.java
'java' 카테고리의 다른 글
[java 자바] Scanner (0) | 2023.06.21 |
---|---|
[java 자바] isEmpty() 와 isBlank() 비교 (0) | 2023.06.21 |
[java 자바] 접근 제한자 public / protected / (default) / private (0) | 2023.06.16 |
오버라이딩 overriding / super / 상속 extends / implements (0) | 2023.06.16 |
[java 자바] 이클립스에서 현재 작성중인 클래스가 아닌 이전 클래스가 실행되는 경우 (0) | 2023.06.13 |