로컬 내부 클래스(Local Inner Class), Local 내부 클래스, 로컬 내부 클래스의 특징, Local 내부 클래스의 구성 형식 - Local 클래스의 지역변수, 매개변수 접근

CODEDRAGON Development/Java

반응형


 

로컬 내부 클래스(Local Inner Class)

·       Outer클래스의 메소드 안에 정의한 클래스

·       Inner클래스의 특징을 모두 가지고 있습니다.

·       Local 내부 클래스는 특정 메서드 안에서 정의되는 클래스(특정 메서드 안에서 선언되는 지역변수와 같습니다)입니다

·       Local 내부 클래스는 메소드 내에 정의가 되어서, 메소드 내에서만 인스턴스의 생성 및 참조 변수의 선언이 가능합니다.(메서드가 호출될 때 생성할 수 있으며 메서드의 수행력이 끝나면 지역변수와 같이 자동 소멸됩니다.)

·       외부 클래스의 메소드나 초기화 블록에 선언된 클래스를 의미합니다. 이러한 지역 클래스는 선언된 블록 내에서만 사용할 수 있습니다.

 

 

 

 

로컬 내부 클래스의 특징

·       지역변수 처럼 사용

·       로컬 내부 클래스의 메모리 생성 시점  메소드가 호출될 때

·       로컬 내부 클래스의 메모리 소멸 시점  메소드가 종료될 때

·       Outer클래스의 멤버변수와 상수값만 접근 가능

·       로컬 내부 클래스가 정의된 메소드내의 로컬변수에는 접근 할 수 없습니다.

·       로컬내부클래스의 객체 생성은 해당 클래스가 포함된 메소드에서만 가능합니다.

 

 

 

Local 내부 클래스의 구성 형식

class OuterClass {

public void methodA() { // 멤버 메서드

class InnerClass {

 

     }

}

}

 

 

 

 

Local 클래스가 지역변수, 매개변수 접근시 고려사항

·       메소드가 반환되는 순간 매개변수와 지역변수는 소멸됩니다. 그러므로 매개변수와 지역변수에 접근할수 없습니다.

·       , final로 선언된 변수의 접근은 허용합니다. 접근의 허용을 위해서 final 변수를 로컬 내부 클래스의 인스턴스가 접근 가능한 영역에 복사하게 됩니다.(메모리의 스태틱 영역에 복사)

·       메모리구조에서 클래스영역의 상수 메모리(constants pool)영역에 저장됩니다.

(클래스 메모리영역은 정적코드 영역과 상수메모리 영역으로 구성되어 있습니다.