Notice
Recent Posts
Recent Comments
Link
«   2024/07   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

개발새발

# 내부 클래스 본문

자바

# 내부 클래스

개발하는후추 2022. 7. 27. 23:39


내부 클래스 (Inner Class)

  • 클래스 내에 선언된 클래스
  • 내부 클래스는 외부 클래스의 멤버들을 쉽게 접근 할 수 있고, 코드의 복잡성을 줄일 수 있다

class Outer { // 외부 클래스

class Inner {
	// 인스턴스 내부 클래스	
}

static class StaticInner {
	// 정적 내부 클래스
}

void run() {
	class LocalInner {
	// 지역 내부 클래스
	}
}

}

종 류 선언 위치 사용 가능한 변수
인스턴스 내부 클래스(instance inner class) 외부 클래스의 멤버변수 선언위치에 선언(멤버 내부 클래스) 외부 인스턴스 변수, 외부 전역 변수
정적 내부 클래스(static inner class) 외부 클래스의 멤버변수 선언위치에 선언(멤버 내부 클래스) 외부 전역 변수
지역 내부 클래스(local inner class) 외부 클래스의 메서드나 초기화블럭 안에 선언 외부 인스턴스 변수, 외부 전역 변수
익명 내부 클래스(annoymouse inner class) 클래스의 선언과 객체의 생성을 동시에 하는 일회용 익명 클래스 외부 인스턴스 변수, 외부 전역 변수

멤버 내부 클래스
1. 인스턴스 내부 클래스
2. 정적 내부 클래스

  1. 인스턴스 내부 클래스
  • 객체 내부에 멤버의 형태로 존재, 외부 클래스의 모든 접근 지정자의 멤버에 접근할 수 있음
  • 인스턴스 내부 클래스는 외부 클래스를 생성한 이후에 사용
  • 클래스의 생성과 상관없이 사용할 수 있는 정적 메서드는 인스턴스 내부 클래스에서 선언할 수 없다
  1. 정적 내부 클래스
  • 내부 클래스가 외부 클래스 생성과 무관하게 정적 변수를 사용하려면 정적 내부 클래스를 선언하면 된다
  • 정적 내부 클래스는 인스턴스 내부와 같이 클래스의 멤버 변수 위치에 정의하며 static 사용

지역 내부 클래스

  • 클래스의 멤버가 아닌 메서드 내에서 정외된 클래스
  • 지역 변수처럼 정의된 메서드 내부에서만 사용가능 하므로 일반적으로 선언 후 바로 객체를 생성해서 사용
  • 메서드가 호출될 때만 메모리에 로딩되기 때문에 정적 클래스로 지정할 수 없다

익명 내부 클래스

  • 이름을 알 수 없는 매부 클래스
  • 클래스의 선언과 객체 생성을 동시에 하기 때문에 하나의 객체만을 생성할 수 있으며 일회용이다
  • 내부클래스와 유사

참조 : https://insight-bgh.tistory.com/21

'자바' 카테고리의 다른 글

#스트림  (0) 2022.07.27
#enum #애노테이션  (0) 2022.07.27
#제네릭 #컬렉션 프레임워크  (0) 2022.07.27
복습  (0) 2022.07.27
배운걸로 혼자 코드 짜보기  (0) 2022.07.27
Comments