본문 바로가기
카테고리 없음

[Java] 15. InnerClass - Class 안의 Class

by 슈퍼닷 2015. 2. 6.
반응형

InnerClass 는 Class안의 Class를 의미한다.

 

public class Test {
int i = 1;

class InnerClass
{
 InnerClass(){
  System.out.println(i);
 }
}
InnerClass ic = new InnerClass();
public static void main(String args[])
{
 Test ift = new Test();
 Test ift2 = new Test();
}
}

 


 

위의 예제를 보자. 위의 예제에서 일반적으로 Test Class를 Outterclass   ,  InnerClass를 Innerclass라고 부른다.

InnerClass를 만드는 이유는 OutterClass의 변수를 마음대로 사용할 수 있기 때문이다.

위의 innerClass 라는 class의 constructor을 보면 i라는 변수를 출력하고 있다.  i 는 outter class의 변수이다.

이런점을 보아 innerclass는 outter class의 변수를 자유롭게 사용할 수 있는것을 알 수있다.

그리고 위의 예제처럼 innerclass를 outterclass내에서 만들수도 있지만

Test t = new Test();

Test.InnerClass tic = new t.InnerClass();

이런방식으로도 생성이 가능하다.

 

 

innerclass는 메소드안에서도 생성할 수 있다.

 

public class Test {

public void func(int a)
{

class InnerClass
{
 InnerClass(){
  System.out.println(a);
 }
}

InnerClass ic = new InnerClass();

}
public static void main(String args[])
{
 Test ift = new Test();

ift.func(23);
}
}

 

 

 

반응형

댓글