본문으로 바로가기

내부 클래스 ( Inner Class )

category Java/java 2020. 8. 11. 16:14

내부클래스

: 특정 클래스 내에 또 다른 클래스가 정의된는 것을 의미한다.

: 독립적이지는 않지만 하나의 멤버처럼 사용할 수 있는 특징이 있다.

 

주의사항이자 장점

내부 클래스는 외부 클래스의 모든 멤버들을 마치 자신의 멤버처럼 사용할 수 있다.

static 내부 클래스를 제외하고는 다른 내부 클래스는 항상 외부 클래스를 통해야 생성이 가능하다

종류 설명  
Member 멤버 변수나 멤버 메서드들과 같이 클래스가 정의된 경우에 사용한다.
Local 특정한 메서드 내에 클래스가 정의된 경우에 사용한다.
Static static 변수(클래스 변수)와 같이 클래스가 static으로 선언된 경우에 사용된다.
Anonymous 참조할 수 있는 이름이 없는 경우에 사용한다.

Local은 잘 사용 안함

Static은 Static 객체를 접근하는 용도로 사용

Anonymous는 추상클래스안에 추상메서드를 완성시킴

public class MemberInner {
	
	int a = 10;
	private int b = 100;
	static int c = 200;
	
	class Inner{	// 내부 클래스 정의
		public void PrintData() {
			System.out.println("int a : " + a);
			System.out.println("private int b : " + b);
			System.out.println("static int c : " + c);
		}
	}

	public static void main(String[] args) {		
//		MemberInner outer = new MemberInner();
//		MemberInner.Inner inner = new MemberInner().new Inner();

		// 내부클래스만 정의할 때
		MemberInner.Inner inner = new MemberInner().new Inner();
		inner.PrintData();
	}
}

 

 

반응형

'Java > java' 카테고리의 다른 글

예외처리 (Exception)  (0) 2020.08.12
제네릭 (Generics)  (0) 2020.08.11
인터페이스(Interface)  (0) 2020.08.11
추상화  (0) 2020.08.11
final  (0) 2020.08.11