본문 바로가기
  • 실행력이 모든걸 결정한다
Spring 사전 준비/JAVA

내부 클래스의 종류

by 김코더 김주역 2022. 3. 17.
반응형

 

 

1. 중첩 클래스 (Nested Class)

- 클래스의 내부에 정의되는 클래스를 중첩 클래스(nested class)라고 한다.

- 중첩 클래스는 정적 클래스(Static Class)와 내부 클래스(Inner Class)로 분류할 수 있다.

 

 

2. 정적 클래스 (Static Class)

- 독립적으로 오브젝트로 만들어질 수 있는 클래스로, new 키워드를 사용해서 객체를 생성할 수 없다. 대신, 클래스명 자체를 사용하여 접근할 수 있다.

 

 

3. 내부 클래스 (Inner Class)

- 내부 클래스를 이용하면 외부 클래스의 멤버에 쉽게 접근할 수 있다.

- 클래스의 캡슐화 : 외부에서 불필요한 클래스를 은닉하여 코드의 복잡성과 클래스 파일을 줄일 수 있다.

- 내부 클래스에서 외부의 변수를 사용할 때는 외부의 변수를 반드시 final로 선언해줘야 한다.

- 내부 클래스로는 3가지 종류가 있다.

* Member Class : 멤버 필드처럼 오브젝트 레벨에 정의되는 클래스다.

* Local Class : 메소드 레벨에 정의되는 클래스로, 선언된 메소드 내에서만 사용할 수 있다.

* Anonymous Class : 말 그대로 이름을 갖지 않는 클래스다. 다음과 같이 클래스 선언과 오브젝트 생성이 같이 이루어진다는 특징이 있다.

 

익명 클래스 예시 1

ExampleObject eo = new 인터페이스명() {
	// 이 곳에 멤버 변수, 메소드 등 클래스의 본문을 작성한다.
}

 

익명 클래스 예시 2

ExampleObject eo = new ExampleObject();

// 파라미터 자리에 직접 오브젝트를 생성해서 넘긴다.
eo.exampleMethod(
    new 인터페이스명() {
        // 이 곳에 멤버 변수, 메소드 등 클래스의 본문을 작성한다.
    };
)

 

 

● 참고 자료 : 토비의 스프링 3.1

반응형

댓글