- 내부 클래스의 기본 개념과 장점에 대해 이해할 수 있다.
- 선언 위치에 따른 내부 클래스의 종류와 특징에 대해 이해하고 설명할 수 있다.
- 내부 클래스의 종류에 따른 유효 범위와 접근성을 이해할 수 있다.
내부 클래스(Inner Class)
클래스 내에 선언된 클래스
외부와 내부가 연관되어있을때 사용
-외부 클래스의 멤버들에 쉽게 접근할 수 있다
-코드의 복잡성을 줄임
-외부적으로 불필요한 데이터를 감출 수 있다 - 캡슐화
class Outer { // 외부 클래스
class Inner {
// 인스턴스 내부 클래스
}
static class StaticInner {
// 정적 내부 클래스
}
void run() {
class LocalInner {
// 지역 내부 클래스
}
}
}
인스턴스 내부 클래스 / 정적 내부 클래스 / 지역 내부 클래스
위치를 중심으로 구분가능
유효범위(scope))와 특성이 변수들(인스턴스변수,클래스변수,지역변수)과 매우 유사
종류 | 선언 위치 | 사용 가능한 변수 |
인스턴스 내부 클래스(instance inner class) | 외부 클래스의 멤버변수 선언위치에 선언(멤버 내부 클래스) | 외부 인스턴스 변수, 외부 전역 변수 |
정적 내부 클래스(static inner class) | 외부 클래스의 멤버변수 선언위치에 선언(멤버 내부 클래스) | 외부 전역 변수 |
지역 내부 클래스(local inner class) | 외부 클래스의 메서드나 초기화블록 안에 선언 | 외부 인스턴스 변수, 외부 전역 변수 |
익명 내부 클래스(anonymous inner class) | 클래스의 선언과 객체의 생성을 동시에 하는 일회용 익명 클래스 | 외부 인스턴스 변수, 외부 전역 변수 |
기본적으로 내부가 외부에 의존하고있다.
인스턴스 내부 클래스
객체 내부에 멤버의 형태로 존재 외부 클래스의 모든 접근 지정자의 멤버에 접근할 수 있다
접근제어자를 사용하고 있음에도 내부에서 외부 클래스의 인스턴스 변수와 정적변수에 각각 접근하여 해당값 사용가능
외부클래스를 생성한 이후에 사용해야한다 -> 정적 변수와 정적 메서드는 인스턴스 내부클래스에서 사용x
정적 내부 클래스
내부 클래스가 외부클래스의 존재와 무관하게 정적변수를 사용
인스턴스내부클래스처럼 멤버변수위치에 정의
static 키워드 사용
지역 내부 클래스
클래스의 멤버가 아닌 메서드 내에서 정의
지역변수와 유사하게 메서드 내부에서만 사용 가능 메서드 선언후 바로 객체를 생성해서 사용
+여전히 처음 보는 건 단어가 잘 안와닿지만 복습하면 조금씩 다시 새겨진다 ㅎ
'개발공부🌷 > JAVA' 카테고리의 다른 글
JAVA 기초9 객체지향프로그래밍 심화 (0) | 2023.10.23 |
---|---|
JAVA 기초8 객체지향프로그래밍 심화 (0) | 2023.10.22 |
JAVA 기초7 객체지향프로그래밍 기초 (0) | 2023.10.19 |
JAVA 기초 6-1 객체지향프로그래밍 기초 (0) | 2023.10.18 |
JAVA 기초 6 객체지향프로그래밍 기초 (1) | 2023.10.18 |