Programming/자바(Java)

7-42 내부클래스(inner class)

먹보 개발자 2024. 10. 7. 04:11

-클래스 안의 클래스

 

내부 클래스의 장점

- 내부 클래스에서 외부 클래스의 멤버들을 쉽게 접근 할 수 있다.

- 코드의 복잡성을 줄일 수 있다.(캡슐화)

 

내부클래스의 종류와 특징

-내부 클래스의 종류와 유효범위는 변수와 동일

내부 클래스 특징
인스턴스 클래스
(instance class)
외부 클래스의 멤버변수 선언위치에 선언하며, 외부 클래스의 인스턴스 멤버처럼 다루어진다. 주로 외부 클래스의 인스턴스 멤버들과 관련된 작어베 사용될 목적으로 선언된다.
스태틱 클래스
(static class)
외부 클래스의 멤버변수 선언위치에 선언하며, 외부 클래스의 static멤버처럼 다루어진다. 주로 외부 클래스의 static멤버, 특히 static메서드에서 사용될 목적으로 선언된다.
지역 클래스
(local class)
외부 클래스의 멤버변수 선언위치에 선언하며, 외부 클래스의 static멤버처럼 다루어진다. 주로 외부 클래스의 static멤버, 특히 static메서드에서 사용될 목적으로 선언된다.
익명 클래스
(anonymous class)
클래스의 선언과 객체의 생성을 동시에 하는 이름없는 클래스( 일회용)

 

 

내부클래스의 제어자와 접근성

-내부 클래스의 제어자는 변수에 사용 가능한 제어자와 동일

-static클래스만 static멤버를 정의할 수 있다. / static내부 클래스에서는 외부 클래스의 인스턴스 멤버에 접근 할 수 없다.

-지역 내부 클래스의 static 상수는 메서드 내에서만 사용가능

-내부 클래스에서는 외부 클래스의 private멤버도 접근 가능하다 (static 클래스는 외부 클래스 인스턴스에 접근 불가 cv는 가능)

-외부 클래스의 지역 변수는 final이 붙은 변수(상수)만 접근 가능하다.(JDK1.8부터는 final없어도 가능)

-지역 내부 클래스를 감싸고 있는 메서드의 상수만 사용 가능.

 

익명클래스

- 이름없는 일회용 클래스. 정의와 생성을 동시에

'Programming > 자바(Java)' 카테고리의 다른 글

8-4 예외 처리하기, try-catch문  (0) 2024.10.07
8-1 프로그램 오류  (0) 2024.10.07
7-35 인터페이스(interface)  (0) 2024.10.04
7-31 추상클래스  (1) 2024.10.03
7-27 매개변수의 다형성  (0) 2024.10.02