본문 바로가기
JAVA SE/이론 및 개념

[20.08.05/Day_20] Java SE / Nested Class 중첩 클래스

by 파프리카_ 2020. 8. 5.
728x90
반응형

Nested Class

: 중첩 클래스 or Inner Claas

→ 클래스 안에 클래스를 정의

→ 내부 클래스를 정의하는 이유는 Outer Class의 private member에 직접 접근해 사용할 수 있기 때문에 주로 쓴다.

 

사용 예제

//outer class
class Outer{
	private String password = "abcd";
	
	//outer class에 inner class의 객체 생성 가능
	public void outTest() {
		Inner in = new Inner();
		in.innterTest();
	}
	
	//inner class
	class Inner{
		public void innterTest() {
			//Outer class의 private 변수에 직접 접근해 사용할 수 있음
			System.out.println(password);
		}
	}
}

public class TestNestedClass {
	public static void main(String[] args) {
		Outer out = new Outer();
		out.outTest();
		
		//Inner class 객체 생성 시
		//Outer class를 거쳐서 생성해야 함
		Outer.Inner in = new Outer().new Inner();
	}
}

 

bin에 Outer$Inner.class가 생성됨

728x90
반응형