본문 바로가기
개인공부

내부클래스

by 리승우 2022. 8. 15.

> 클래스 안의 클래스

 

class A {  //B의 외부클래스

   class B { // A의 내부클래스

}

}

 

 

> 내부클래스의 장점

1. 내부 클래스에서 외부 클래스의 멤버들을 쉽게 접근할 수 있다.

(B에서는 객체생성 없이도 A의 멤버에 접근가능하다)

 

2. 코드의 복잡성을 줄일 수 있다 (캡슐화)

 

 

> 예시파일

class A {
	int i=100;
	B b = new B();	
}

class B {
	void method() {
		A a = new A();
		System.out.println(a.i);
	}
}
	
class C {
	B b = new B();
}


public class innerTest {

	public static void main(String[] args) {
		B b = new B();
		b.method();	
	}
}
// 출력값 
//100
class A { //A는 B의 외부클래스
	int i=100;
	B b = new B();
	
	class B { //B는 A의 내부클래스
		void method() {
//			A a = new A();
//			System.out.println(a.i);
			System.out.println(i); // 객체 생성없이 외부클래스의 멤버 접근가능
		}
	}
}

//class C { C클래스에서는 B클래스에 접근이 불가능 (A의 내부클래스가 되었기 때문에)
//	B b = new B();
//}


public class innerTest {
	public static void main(String[] args) {
//		B b = new B();
//		b.method();
	}
}

 

> 특징

1. 내부 클래스에서, 외부 클래스이 private 멤버 접근 가능하다.

2. 지역 내부 클래스를 감싸고 있는 메서드의 상수만 이용가능하다 (final static)

 

 

 

'개인공부' 카테고리의 다른 글

collection / ArrayList  (0) 2022.08.15
익명클래스  (0) 2022.08.15
달팽이 별찍기 문제  (0) 2022.08.13
1차원 배열문제  (0) 2022.08.09
2차원 배열  (0) 2022.08.08

댓글