Ch7-42~44. 내부 클래스
0. 목차
Chapter7. 객체지향 프로그래밍Ⅱ
Ch7 - 42. 내부 클래스
Ch7 - 43. 내부 클래스의 종류와 특징
Ch7 - 44. 내부 클래스의 선언
Ch7 - 42. 내부 클래스
▶ 내부 클래스란?
▷ 클래스 안의 클래스
- 일반적 클래스
class A { ... } class B { ... }
- 내부 클래스
class A { // B의 외부 클래스 ... class B { // A의 내부 클래스 ... } }
▶ 내부 클래스의 장점
▷ 내부 클래스에서 외부 클래스의 멤버들을 쉽게 접근 가능
▷ 코드의 복잡성을 감소 시킴(캡슐화)
▶ 실습
▷ 일반적 클래스 B에서 A의 멤버 i를 사용
class A {
int i = 100;
}
class B {
void method() {
A a = new A();
System.out.println(a.i);
}
}
▷ 내부 클래스 B에서 A의 멤버 i를 사용
class A {
int i = 100;
class B {
void method() {
System.out.println(i); // A a = new A(); 객체 생성 필요X
}
}
}
Ch7 - 43. 내부 클래스의 종류와 특징
▶ 변수의 종류
▷ iv
▷ cv
▷ lv
▶ 내부 클래스의 종류
▷ 인스턴스 내부 클래스 ≒ iv
▷ 스태틱 내부 클래스 ≒ cv
▷ 지역 클래스 ≒ lv
▷ 익명 클래스 : 클래스의 선언과 객체의 생성을 동시에 하는 이름 없는 클래스(일회용)
Ch7 - 44. 내부 클래스의 선언
▶ 인스턴스 내부 클래스
▷ ≒ iv
class Outer {
class InstanceInner {
...
}
}
▶ 스태틱 내부 클래스
▷ ≒ cv(static + iv)
class Outer {
static class StaticInner {
...
}
}
▶ 지역 내부 클래스
▷ ≒ lv
class Outer {
void method() {
class LocalInner {
...
}
}
}