자바(Java) - 로컬 이너클래스 간단 예제

안녕하세요

이번 시간에는 자바에서 활용도가 높은 로컬이너클래스 예제를 올려볼까 합니다.

잘 봐주세요~!!

/*로컬이너클래스: 메소드 블럭 내부 또는 인스턴스 블럭 내부에 클래스를 구성한 경우를 의미
 * 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();
}
}

위의 소스 코드를 실행하시면 아래와 같은 결과 화면이 출력됩니다.




댓글 없음:

댓글 쓰기