'Nested Class'에 해당되는 글 1건

  1. 2012.07.17 Nested class

* Nested class - class안에 class를 정의

* Inner class는 Outer class의 모든 member에 접근(private에도 접근 가능)

class Outer{
      private int a;

class Inner{                -> inner class
      public void go(){

system.out.println(a);

}

}

}

* class Block에 정의

1. static inner class -> Outer class의 static 멤버만 접근가능
2. non-static inner class -> Outer class의 static/instance 멤버 모두 접근 가능

class A{

class Inner1{}

static class Inner2{}

}

* method Block 내에 정의 -> Outer class의 static/instance 멤버 모두 접근 가능
                                    -> 같은 메소드에 선언된 final local 변수에 접근 가능

*

class Outer{

int k=30;
public void go{
    final  int j =20;

class Inner{

system.out.println(j);//로컬 변수는 메소드 선언하고 메소드가 끝날때 사라지고 class는 프로그램 끝날 때까지 살아 있어서 접근이 불가능 하다. 하지만 j를 final로 바꾸면 힙영역에 저장되므로 class 내에서 접근이 가능하게 된다.

}

}

}

* Nested class 객체 생성

익명(Anoymous)
Inner class(구현) -> 객체 생성과 정의를 동시에 하는 class

구문 :

new Super(){ <-부모 class(interface type)

->class 구현 - 1. 변수, 2. 메소드

}

Posted by 조은성
,