내부클래스
: 특정 클래스 내에 또 다른 클래스가 정의된는 것을 의미한다.
: 독립적이지는 않지만 하나의 멤버처럼 사용할 수 있는 특징이 있다.
주의사항이자 장점
내부 클래스는 외부 클래스의 모든 멤버들을 마치 자신의 멤버처럼 사용할 수 있다.
static 내부 클래스를 제외하고는 다른 내부 클래스는 항상 외부 클래스를 통해야 생성이 가능하다
종류 | 설명 | |
Member | 멤버 변수나 멤버 메서드들과 같이 클래스가 정의된 경우에 사용한다. | |
Local | 특정한 메서드 내에 클래스가 정의된 경우에 사용한다. | |
Static | static 변수(클래스 변수)와 같이 클래스가 static으로 선언된 경우에 사용된다. | |
Anonymous | 참조할 수 있는 이름이 없는 경우에 사용한다. |
Local은 잘 사용 안함
Static은 Static 객체를 접근하는 용도로 사용
Anonymous는 추상클래스안에 추상메서드를 완성시킴
public class MemberInner {
int a = 10;
private int b = 100;
static int c = 200;
class Inner{ // 내부 클래스 정의
public void PrintData() {
System.out.println("int a : " + a);
System.out.println("private int b : " + b);
System.out.println("static int c : " + c);
}
}
public static void main(String[] args) {
// MemberInner outer = new MemberInner();
// MemberInner.Inner inner = new MemberInner().new Inner();
// 내부클래스만 정의할 때
MemberInner.Inner inner = new MemberInner().new Inner();
inner.PrintData();
}
}
반응형
'Java > java' 카테고리의 다른 글
예외처리 (Exception) (0) | 2020.08.12 |
---|---|
제네릭 (Generics) (0) | 2020.08.11 |
인터페이스(Interface) (0) | 2020.08.11 |
추상화 (0) | 2020.08.11 |
final (0) | 2020.08.11 |