Java

[Java]내부클래스 - part.1 내부 맴버 클래스

MoZZANG 2022. 3. 22. 19:55
내부 클래스란?
  • 클래스안에 또 다른 클래스를 만드는 것을 말한다.
  • 일반적으로 클래스 앞에는 static을 붙일 수 없지만 내부클래스 앞에는 static을 붙일 수 있다.
  • 클래스안의 클래스를 내부클래스 혹은 Inner Class 혹은 중첩클래스 혹은 Nested Class라고 한다.
  • 내부클래스는 외부클래스의 맴버(변수,메소드 등)를 자신의 것처럼 자유롭게 사용가능하다.  단, 내부 정적클래스는 외부의 non-static맴버를 사용할 수 없다.
  • 내부정적클래스만을 제외하고 모든 내부클래스가 정적맴버를 가질 수 없다.
내부 클래스의 종류
  • 클래스 안에 정의된 클래스
  1. 내부 맴버 클래스(not-static)
  2. 내부 정적 클래스(static)
  • 메소드 안에 정의된 클래스
  1. 내부 로컬  클래스(이름이 있는 클래스)
  2. 내부 무명 클래스(이름이 없는 클래스 = Annonymous)

 

외부클래스를 인스턴스화하면 외부클래스가 heap영역에 메모리가 생기고 내부클래스는 new생성자를 사용해줘야 메모리에 생긴다.
고로 내부 클래스에서는 외부 클래스가 먼저 메모리에 생김으로 외부클래스의 모든 맴버를 사용할 수 있다.
단, 외부클래스에서는 내부클래스 맴버를 사용하려면 내부클래스도 new해줘야 사용 가능하다(원칙)
단, 내부static클래스는 외부클래스보다 먼저 메모리에 생긴다.

 

 

<외부클래스 만들기>

 

 

<내부클래스 만들기>

 

 

<main Method에서 사용해보기>

 

'Java' 카테고리의 다른 글

[Java]Builder pattern  (0) 2022.03.22
[Java]내부클래스 - part.2 내부 정적 클래스  (0) 2022.03.22
[Java]예외처리 - part4. finally  (0) 2022.03.22
[Java]예외처리 - part3. throws  (0) 2022.03.21
[Java]예외처리 - part2. Catch절  (0) 2022.03.21