자바 내부 클래스 예제

메서드 Local 내부 클래스는 해당 지역 변수가 final으로 선언되지 않을 때까지 외부 메서드의 로컬 변수를 사용할 수 없습니다. 예를 들어 다음 코드는 컴파일러 오류를 생성합니다(x는 outerMethod() 및 innerMethod() 이에 액세스하려고 시도함) 외부 클래스의 다른 멤버에 사용하는 내부 클래스에 대해 동일한 수정자를 사용할 수 있습니다. 예를 들어 액세스 지정자를 개인, 공용 및 보호하여 다른 클래스 멤버에 대한 액세스를 제한하는 데 사용하는 것처럼 내부 클래스에 대한 액세스를 제한할 수 있습니다. 로컬 클래스는 메서드 또는 범위 블록 내에서 클래스가 정의되는 특수 한 유형의 내부 클래스입니다. 다음에 나오는 DataStructure.java 예제는 다음으로 구성됩니다: 이 경우 이 키워드는 중첩된 클래스의 인스턴스를 참조하고 외부 클래스의 멤버는 외부 클래스의 이름을 사용하여 참조할 수 있습니다. 중첩 된 클래스를 사용 하는 강력한 이유는 다음과 같습니다 2) 중첩 된 클래스는 논리적으로 한 곳에서만 클래스와 인터페이스를 그룹화 하기 때문에 더 읽기 쉽고 유지 관리 가능한 코드를 개발 하는 데 사용 됩니다. java.io.NotSerializable을 피하기 위해중첩 클래스를 직렬화하려고 시도하는 동안 예외를 수행해야 합니다. 익명의 내부 클래스의 장점은 무엇입니까? 예를 들어 설명한다. 다음은 중첩된 클래스를 작성하는 구문입니다. 여기서 Outer_Demo 클래스는 외부 클래스이고 Inner_Demo 클래스는 중첩 클래스입니다. 마찬가지로 익명 내부 클래스를 사용하여 콘크리트 클래스의 메서드와 인터페이스를 재정의할 수 있습니다. 내부 클래스를 만드는 것은 매우 간단합니다.

클래스 내에서 클래스를 작성하기만 하면 됩니다. 클래스와 달리 내부 클래스는 전용일 수 있으며 내부 클래스 private을 선언하면 클래스 외부의 개체에서 액세스할 수 없습니다. 이 게시물의 첫 번째 단락에서, 당신은 말했다: ”… 외부 클래스는 개인 또는 기본 액세스만 가질 수 있습니다.” 그것은 오히려해야한다 : ”… 외부 클래스는 공용 또는 기본 액세스만 가질 수 있습니다.” 여기서 포인트를 만들수 있습니까? 익명 내부 클래스는 정의된 지점에서만 액세스할 수 있습니다. 익명 내부 클래스를 만드는 방법을 정의하는 것은 조금 어렵습니다. 클래스 이름 없이 선언된 내부 클래스를 익명 내부 클래스라고 합니다. 익명 내부 클래스의 경우, 우리는 선언하고 동시에 인스턴스화합니다.