자바의 정석 -(7장 객체지향 II - 4)

김우경·2022년 4월 18일
0

Java

목록 보기
7/9
post-thumbnail

7장 4번째

가끔 헷갈리는 부분만 요약한 것입니다

8.내부 클래스(inner class)

AWT나 Swing과 같은 GUI어플리케이션의 이벤트처리 외에는 잘 사용하지 않을 정도로 빈도가 높지 않으므로 기본 원리와 특징을 이해하는 정도까지 학습

내부 클래스는 클래스 내에 선언된 클래스

  • 내부 캘르스에서 외부 클래스의 멤버들을 쉽게 접근할 수 있다.
  • 코드의 복잡성을 줄일 수 있다.(캡슐화)

8.2 내부 클래스의 종류,특징

instance 클래스 : 외부 클래스의 멤버변수 선언위치에 선언, 외부 클래스의 인스턴스 멤버처럼 사용 주로 외부 클래스의 인스턴스멤버들과 관련된 작업에 사용

static 클래스 : 외부 클래스의 멤버변수 선언위치에 선언, 외부 클래스의 static멤버처럼 사용
주로 외부 클래스의 static멤버, static메서드에서 사용

local 클래스 : 외부 클래스의 메서드나 초기화블럭 안에 선언, 선언된 영역 내부에서만 사용

anonymous 클래스 : 클래스의 선언과 객체의 생성을 동시에 하는 이름없는 클래스(일회용)

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

내부 클래스도 클래스이기 때문에
abstract, final과 같은 제어자
private, protected과 같은 접근 제어자

  • final이 붙은 변수는 상수이기 때문에 어떤 경우라도 static을 붙이는 것 가능
    그 외에는 static클래스만 static멤버 정의

사용가능

8.5 익명 클래스(anonymous class)

클래스의 선언과 객체의 생성을 동시에 하기 때문에 단 한번만 사용될 수 있고 오직 하나의 객체만을 생성할 수 있는 일회용 클래스이다.

Object iv = new Object(){ void method(){} };		// 익명클래스
static Object cv = new Object(){ void method(){} };	// 익명클래스
void myMethod() {
	Object lv = new Object(){ void method(){} };	// 익명클래스
}

이름이 없기 때문에 생성자도 가실 수 없다.
조상클래스의 이름이나 구현하고자 하는 인터페이스의 이름을 사용해서 정의하기 때문에
오로지 단 하나의 클래스를 상속받거나 단 하나의 인터페이스만을 구현할 수 있다.

0개의 댓글