이번 시간에는 자바에서 활용도가 높은 로컬이너클래스 예제를 올려볼까 합니다.
잘 봐주세요~!!
/*로컬이너클래스: 메소드 블럭 내부 또는 인스턴스 블럭 내부에 클래스를 구성한 경우를 의미
* 1)이름있는 로컬 이너클래스
* 2)이름없는 로컬 이너클래스
* */
public class Local {
String str = "@@@"; // 멤버변수
public void foo(){
class LocalInner{ // 일정 범위 내에서 동일한 이름으로 클래스 설정 가능
}
}
public void sub(){
final int num=100; // //지역변수(8버전 이후 fianl 안붙여도 됨)
System.out.println("str="+str);
System.out.println("num="+num);
// LocalInner a = new LocalInner(); <-- 이것은 안됨. 밑에가 구성되고 난 이후에 됨..
class LocalInner{
String lstr="####";
public void print(){
System.out.println("str: "+str);
System.out.println("lstr: "+lstr);
System.out.println("num: "+num);
/*이전 버전에서는 로컬 이너클래스 안에서는 final이 아닌 지역변수는 접근불가*/
}
}
LocalInner li = new LocalInner();
li.print();
/*로컬 이너클래스는 자기가 속한 메소드 안에서
* 객체 생성을 해야 한다.
* 다른 메소드에서는 객체생성 불가능.(main에서도 안됨)
* 또한 로컬이너클래스가 구성된 후에 객체 생성이 가능함
* */
}
public static void main(String[] args) {
Local lc = new Local();
lc.sub();
}
}
위의 소스 코드를 실행하시면 아래와 같은 결과 화면이 출력됩니다.
댓글 없음:
댓글 쓰기