중첩 클래스의 분류
중첩(Nested) : 어떤 다른 것이 내부에 위치하거나 포함되는 구조적인 관계
내부(Inner) : 나의 내부에 있는 나를 구성하는 요소
정적 중첩 클래스
>> 바깥 클래스 안에 있지만 바깥 클래스와 관계 없는 전혀 다른 클래스
>> static이 붙음
>> 바깥 클래스의 인스턴스에 소속되지 않음
내부 클래스
>> 바깥 클래스의 내부에 있으면서 바깥 클래스를 구성하는 요소
>> static이 붙지 않음
>> 바깥 클래스의 인스턴스에 소속
>> 생성할 때, 바깥 클래스의 인스턴스 참조 필요
중첩 클래스는 언제 사용?
>> 특정 클래스가 다른 하나의 클래스 안에서만 사용되거나, 둘이 아주 긴밀하게 연결되어 있는 특별한 경우
>> 외부의 여러 클래스가 특정 중첩 클래스를 사용하면 안됨
중첩 클래스 사용 이유?
논리적 그룹화 : 특정 클래스가 다른 하나의 클래스 안에서만 사용되면 안에 포함하는 것이 논리적으로 더 그룹화
캡슐화 : 바깥 클래스의 private 멤버에 접근 가능, 불필요한 public 메서드 제거 가능
섀도잉
다른 변수들을 가려서 보이지 않게 하는 것
프로그래밍에서 우선순위는 대부분 더 가깝거나 더 구체적인 것
>> 프로그래밍에서 가장 중요한 것은 명확성!!
'Java' 카테고리의 다른 글
Java / 예외 처리 - 이론 (0) | 2025.02.28 |
---|---|
Java / 지역 클래스, 익명 클래스 (0) | 2025.02.27 |
Java / 열거형 - ENUM (0) | 2025.02.25 |
Java / 래퍼, Class 클래스 (0) | 2025.02.24 |
Java / String 클래스 (0) | 2025.02.24 |