1.내부 클래스
1-1.정의: 클래스 안의 클래스
1-2.내부클래스의 장점
①내부 클래스에서 외부 클래스의 멤버에 쉽게 접근할 수 있다. 즉 내부 클래스에서 객체 생성 없이도 A의 멤버에 접근이 가능하다.
②코드의 복잡성을 줄일 수 있다. A클래스에 쓰일 멤버들을 굳이 외부로 나가지 않게 할 수 있다.
1-3.내부 클래스의 종류와 특징
내부 클래스의 종류와 유효범위는 변수와 동일하다.
2.내부 클래스의 제어자와 접근성
- 내부 클래스의 제어자는 변수에 사용가능한 제어자와 동일하다.
- class의 제어자는 본래 'default'와 'public'만 사용가능하지만, 내부 클래스의 제어자는 변수에 쓰이는 제어자와 동일하기에 'default','public','private','protected' 4가지 제어자를 모두 사용할 수 있다.
- static내부 클래스만 static멤버를 정의할 수 있다.
- 인스턴스 멤버가 Static멤버를 사용할 수 있지만 Static멤버는 인스턴스 멤버를 사용할 수 없다.
- 내부 클래스는 외부 클래스의 private멤버도 접근 가능하다.
- 외부 클래스의 지역변수는 final이 붙은 변수(상수)만 가능하다. 내부 클래스의 객체가 지역변수보다 더 오래 존재가능하다.
- 내부 클래스를 외부에서 사용하기 위해선 외부 클래스를 먼저 생성하고 내부 클래스를 생성하여 사용한다.
- 출력 결과에서 내부 클래스 앞에 '$'표시와 함께 외부 클래스가 붙는
'java > 객체지향' 카테고리의 다른 글
[객체지향] 인터페이스 (0) | 2021.07.19 |
---|---|
[객체지향] 추상 클래스 (0) | 2021.07.16 |
[객체지향]여러 종류의 객체를 배열로 다루기 (0) | 2021.07.16 |
[객체지향] 다형성(polymorphism) (0) | 2021.07.15 |
[객체지향] 제어자 (0) | 2021.07.14 |