-클래스 안의 클래스
내부 클래스의 장점
- 내부 클래스에서 외부 클래스의 멤버들을 쉽게 접근 할 수 있다.
- 코드의 복잡성을 줄일 수 있다.(캡슐화)
내부클래스의 종류와 특징
-내부 클래스의 종류와 유효범위는 변수와 동일
| 내부 클래스 | 특징 |
| 인스턴스 클래스 (instance class) |
외부 클래스의 멤버변수 선언위치에 선언하며, 외부 클래스의 인스턴스 멤버처럼 다루어진다. 주로 외부 클래스의 인스턴스 멤버들과 관련된 작어베 사용될 목적으로 선언된다. |
| 스태틱 클래스 (static class) |
외부 클래스의 멤버변수 선언위치에 선언하며, 외부 클래스의 static멤버처럼 다루어진다. 주로 외부 클래스의 static멤버, 특히 static메서드에서 사용될 목적으로 선언된다. |
| 지역 클래스 (local class) |
외부 클래스의 멤버변수 선언위치에 선언하며, 외부 클래스의 static멤버처럼 다루어진다. 주로 외부 클래스의 static멤버, 특히 static메서드에서 사용될 목적으로 선언된다. |
| 익명 클래스 (anonymous class) |
클래스의 선언과 객체의 생성을 동시에 하는 이름없는 클래스( 일회용) |
내부클래스의 제어자와 접근성
-내부 클래스의 제어자는 변수에 사용 가능한 제어자와 동일
-static클래스만 static멤버를 정의할 수 있다. / static내부 클래스에서는 외부 클래스의 인스턴스 멤버에 접근 할 수 없다.
-지역 내부 클래스의 static 상수는 메서드 내에서만 사용가능
-내부 클래스에서는 외부 클래스의 private멤버도 접근 가능하다 (static 클래스는 외부 클래스 인스턴스에 접근 불가 cv는 가능)
-외부 클래스의 지역 변수는 final이 붙은 변수(상수)만 접근 가능하다.(JDK1.8부터는 final없어도 가능)
-지역 내부 클래스를 감싸고 있는 메서드의 상수만 사용 가능.
익명클래스
- 이름없는 일회용 클래스. 정의와 생성을 동시에
'Programming > 자바(Java)' 카테고리의 다른 글
| 8-4 예외 처리하기, try-catch문 (0) | 2024.10.07 |
|---|---|
| 8-1 프로그램 오류 (0) | 2024.10.07 |
| 7-35 인터페이스(interface) (0) | 2024.10.04 |
| 7-31 추상클래스 (1) | 2024.10.03 |
| 7-27 매개변수의 다형성 (0) | 2024.10.02 |