-
내부클래스(inner class)란?

내부클래스란, 클래스 내에 선언된 클래스이다



.내부클래스의 장점
- 내부클래스에서 외부클래스의 멤버들을 쉽게 접근할 수 있다. 
- 코드의 복잡성을 줄일 수 있다.(캡슐화) 
 내부클래스 종류와 특징
- 내부 클래스의 종류는 변수의 선언위치에 따른 종류와 동일하다.
- 유효범위와 성질도 변수와 유사하므로 비교해보면 이해하기 쉽다.
- 인스턴스 클래스 (instance class)
- 외부 클래스의 멤버변수 선언위치에 선언, 인스턴스 멤버처럼 다루어진다.
- 주로 외부 클래스의 인스턴스 멤버들과 관련된 작업에 사용될 목적으로 선언된다.
- 스태틱 클래스 (static class)
- 외부 클래스의 멤버변수 선언위치에 선언, static 멤버처럼 다루어진다.
- 주로 외부클래스의 static멤버, 특히 static 메서드에서 사용될 목적으로 선언된다.
- 지역 클래스 (local class)
- 외부 클래스의 메서드나 초기화블럭 안에 선언, 선언된 영역 내부에서만 사용될 수 있다.
- 익명 클래스 (anonymous class)
- 클래스의 선언과 객체의 생성을 동시에하는 이름없는 클래스(일회용)

 내부클래스의 제어자와 접근성
- 내부클래스의 접근제어자는 변수에 사용할 수 있는 접근제어자와 동일하다.
- static 클래스만 static 멤버를 정의할 수 있다.
- 내부클래스도 외부클래스의 멤버로 간주되며, 동일한 접근성을 갖는다.
- 외부클래스의 지역변수는 final이 붙은 변수(상수)만 접근 가능하다.
- 지역클래스의 인스턴스가 소멸된 지역변수를 참조할 수 있기 때문이다.

 익명 클래스(anonymous class)
- 이름이 없는 일회용 클래스, 단 하나의 객체만을 생성할 수 있다.
- 생성자도 가질 수 없고, 하나의 클래스로 상속받는 동시에 인터페이스를 구현하거나 하나 이상의 인터페이스를 구현할 수 없다.

- 오로지 단 하나의 클래스를 상속받거나 단 하나의 인터페이스만을 구현할 수 있다.

'취업Q&A > 자바 기술면접' 카테고리의 다른 글

추상클래스 란?  (0) 2015.12.07
인터페이스 란?  (0) 2015.12.07
객체지향의 장점  (0) 2015.12.07
다형성 이란?  (0) 2015.12.07
기본형 vs 참조형 의 차이점  (0) 2015.12.07

다른 카테고리의 글 목록

취업Q&A/자바 기술면접 카테고리의 포스트를 톺아봅니다