* 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. 메소드
}
'프로그래밍 > Android' 카테고리의 다른 글
안드로이드 개발API확인하기 (0) | 2012.07.19 |
---|---|
Output출력 - 토스트 (0) | 2012.07.19 |
LinearLayout - main.xml태그 사용법[실습] (0) | 2012.07.16 |
리니어레이아웃 (0) | 2012.07.16 |
레이아웃 파일 및 파일 구성(XML의 장점) (0) | 2012.07.16 |