본문 바로가기

JAVA/JAVA

자바 개념 - inner 클래스

반응형

** inner 클래스

: 클래스 안에 또다른 클래스를 정의 하는 것

inner 클래스는 outer 클래스의 멤버처럼 동작한다.

즉, outer클래스의 멤버변수나 멤버메소드에 자유롭게 접근가능

반대로 outer 클래스에서 inner 클래스로 접근하려면 객체 생성 및 통해서만 가능하다.


만약 inner클래스가 다른 곳에서도 사용될 필요가 있다면 inner 클래스를 쓰는게 부적합하다.

outer클래스에서만 필요하다면 inner클래스가 적합하다


자주 쓰이는 용도 : awt 나 안드로이드 이벤트처리 등에 자주 쓰임


컴파일시 inner 클래스는 A$B 로 만들어짐


B클래스 객체 생성시 

A.B ob = new A().new B();

ob.info();

이런식으로 해야하기에 외부에서 많이 사용할 경우 적합하지 않다



예)

class A 는 class B의 속성값을 쓰려면 객체를 생성해야함

(객체 생성 예. 

B ob = new B();

System.out.println(ob.j);

class B 는 class A의 속성1,2나 동작1,2 모두 사용가능


class A{

class B{

속성3;

속성4;

}


속성1;

속성2;

.....


동작1(){

}

동작2(){

}

}



반응형