> 클래스 안의 클래스
class A { //B의 외부클래스
class B { // A의 내부클래스
}
}
> 내부클래스의 장점
1. 내부 클래스에서 외부 클래스의 멤버들을 쉽게 접근할 수 있다.
(B에서는 객체생성 없이도 A의 멤버에 접근가능하다)
2. 코드의 복잡성을 줄일 수 있다 (캡슐화)
> 예시파일
class A {
int i=100;
B b = new B();
}
class B {
void method() {
A a = new A();
System.out.println(a.i);
}
}
class C {
B b = new B();
}
public class innerTest {
public static void main(String[] args) {
B b = new B();
b.method();
}
}
// 출력값
//100
class A { //A는 B의 외부클래스
int i=100;
B b = new B();
class B { //B는 A의 내부클래스
void method() {
// A a = new A();
// System.out.println(a.i);
System.out.println(i); // 객체 생성없이 외부클래스의 멤버 접근가능
}
}
}
//class C { C클래스에서는 B클래스에 접근이 불가능 (A의 내부클래스가 되었기 때문에)
// B b = new B();
//}
public class innerTest {
public static void main(String[] args) {
// B b = new B();
// b.method();
}
}
> 특징
1. 내부 클래스에서, 외부 클래스이 private 멤버 접근 가능하다.
2. 지역 내부 클래스를 감싸고 있는 메서드의 상수만 이용가능하다 (final static)
'개인공부' 카테고리의 다른 글
collection / ArrayList (0) | 2022.08.15 |
---|---|
익명클래스 (0) | 2022.08.15 |
달팽이 별찍기 문제 (0) | 2022.08.13 |
1차원 배열문제 (0) | 2022.08.09 |
2차원 배열 (0) | 2022.08.08 |
댓글