내부클래스 (inner class)

roglog·2021년 7월 8일
0

java의 정석

목록 보기
26/36

1. 내부 클래스란?


  • 클래스 내에 선언된 클래스
  • 선언하는 이유
    두 클래스가 서로 긴밀한 관계에 있기 때문
  • 장점
    • 내부 클래스에서 외부 클래스의 멤버들을 쉽게 접근할 수 있음
    • 코드의 복잡성을 줄일 수 있음(캡슐화)

Ex)

class A { // 외부 클래스

	class B { // 내부 클래스

	}

}

2. 내부 클래스의 종류와 특징


  • 인스턴스 클래스
  • 스태틱 클래스
  • 지역클래스
  • 익명 클래스

3. 내부 클래스의 선언


Ex)

class Outer {
	class InstanceInner {} 
    static class StaticInner {}
    
    void myMethod() {
    	class LocalInner {}
    }
}

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


  • 내부 클래스도 abstract나 final과 같은 제어자 사용 가능
  • private, protected과 접근제어자도 사용 가능

5. 익명 클래스 (anonymous class)


  • 이름이 없고, 클래스의 선언과 객체의 생성을 동시에 하기 때문에 단 한번만 사용될 수 있고 오직 하나의 객체만을 생성할 수 있는 일회용 클래스
  • 이름이 없기 때문에 생성자도 가질 수 없음
  • 오로지 하나의 클래스를 상속받거나 하나의 인터페이스만을 구현할 수 있음

Ex)

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

java의 정석 chapter7

profile
Full Stack Developer 📚

0개의 댓글