| 1. Basics | 클래스, 객체, 변수, 메서드 // 생성자, 초기화 |
| 2. Advanced | 상속, 오버라이딩 // package, import, modifiers, 다형성 // 추상클래스, interface, 내부클래스 |
| 10. 내부 클래스(Inner Class) | 1. 내부 클래스 2. 내부 클래스의 종류와 특징 3. 내부 클래스의 선언 4. 내부 클래스의 제어자와 접근성 5. 익명 클래스 |
10.1 내부 클래스
- 클래스 내에 선언된 클래스
- 한 클래스를 다른 클래스의 내부 클래스로 선언하면
-두 클래스의 멤버들 간에 서로 쉽게 접근할 수 있음
-외부에는 불필요한 클래스를 감춤, 코드의 복잡성을 줄임 - 특정 클래스 내에서만 주로 사용되는 클래스를 내부 클래스로 선언

10.2 내부 클래스의 종류와 특징
- 내부 클래스의 종류
변수의 선언 위치에 따른 변수의 종류와 동일(유효범위, 성질)
-스태틱 클래스: 외부 클래스의 멤버변수 선언위치에 선언하며, 외부 클래스의 static 멤버처럼 다루어짐.
주로 외부 클래스의 static 멤버, 특히 static 메서드에서 사용될 목적으로 선언됨.
-익명 클래스: 클래스의 선언과 객체의 생성을 동시에 하는 이름없는 클래스(일회용)
10.3 내부 클래스의 선언_다시
:내부 클래스의 선언 위치에 따라 같은 선언위치의 변수와 동일한 유효범위와 접근성을 가짐

10.4
종류1)static 내부 클래스_다시

종류2) Instance 내부 클래스

종류4) 익명 클래스

+익명 클래스 참고 예

10.5 내부 클래스의 제어자와 접근성_다시
- Instance/instance 내부 클래스에서 외부 클래스의 인스턴스 변수, static 변수 모두 사용 가능*private 일지라도!

- 지역 클래스는 외부 클래스의 인스턴스 멤버와 static 멤버를 모두 사용힐 수 있음
-추가로 지역 클래스가 포함된 메서드에 정의된 final 지역변수(상수)도 사용 가능 (private일지라도)\
-주의*상수 외의 일반 지역변수는 원칙적으로 접근 안 됨
*하지만 java가 자동으로 final 붙여줌(java 8~)

'CSE > CP1 이론' 카테고리의 다른 글
| CP1_07.객체지향 프로그래밍_Advanced_5. 클래스 타입의 형변환 (0) | 2024.06.19 |
|---|---|
| CP1_05.배열3_다차원 배열 (0) | 2024.06.17 |
| CP1_07.객체지향 프로그래밍_Advanced_파일과 예외처리 (0) | 2024.06.17 |
| CP1_07.객체지향 프로그래밍_Advanced_2.오버라이딩 (0) | 2024.06.11 |
| CP1_07. 객체지향프로그래밍_Advanced_1. 계승 (0) | 2024.06.11 |