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);
}
}
댓글