본문 바로가기
JAVA

34. 내부클래스

by NamGH 2023. 8. 8.

내부클래스란?

클래스 안에 선언된 클래스

외부에 불필요한 클래스를 감춤으로써 코드의 복잡성을 줄일수 있다


내부 클래스의 종류

내부 클래스 특징
인스턴스 클래스 외부 클래스의 멤버변수 선언위치에 선언하며, 외부 클래스의 인스턴트 멤버처럼 다루어짐
스태틱 클래스 외부 클래스의 멤ㅈ버변수 선언위치에 선언하며, 외부 클래스의 static 멤버처럼 다루어짐
지역 클래스 외부 클래스의 메서드나 초기화블럭 안에 선언하며, 선언된 영역 내부에서만 사용될 수 있다
익명 클래스 클래스의 선언과 객체의 생성을 동시에 하는 이름없는 일회용 클래스

익명클래스 예제

interface RemoteControl{
void turnOn();
void turnOff();
}
public class Ex07_익명클래스 {
public static void main(String[] args) {
 
RemoteControl rc = new RemoteControl() {
public void turnOn() {
System.out.println("TV를 켠다");
}
public void turnOff() {
System.out.println("TV를 끈다");
}
};
rc.turnOn();
rc.turnOff();
}
}

다른 내부클래스같은 경우에는 객체를 생성할때 RemoteControl rc = new RemoteControl() {}이렇게 하지만 익명 클래스의 경우에는  클래스 선언과 객체를 동시에 하기때문에 오로지 단 하나의 인터페이스를 상속받거나 구현할 수 있다


내부클래스를 쓰는이유

내부클래스를 사용하면 비슷한 클래스들끼리 묶을수 있어서 코드의 캡슐화를 증가시킬수 있으며 내부 클래스에서 외부 클래스로 손쉽게 접근할 수 있게된다

'JAVA' 카테고리의 다른 글

36. 컬렉션  (0) 2023.08.16
35. 문자열  (0) 2023.08.16
33. 예외처리  (0) 2023.08.08
32. 인터페이스  (0) 2023.08.07
31. 다형성  (0) 2023.08.07