익명의 내면 수업은 무엇입니까?

객체 지향 컴퓨터 프로그래밍에서 익명의 내부 클래스는 메소드 내부에서 선언되지만 이름이없는 클래스입니다. 익명의 내부 클래스에는 액세스 할 수있는 변수의 범위에 대한 제한을 포함하여 일반 클래스와 다르게 만드는 몇 가지 제한이 있습니다. 익명의 내부 클래스를 사용하면 소스 코드를 더 읽기 쉽게 만들 수있는 매우 구체적인 상황이 있지만, 별도의 클래스의 생성이 그것을 복잡하게 할 수있는 캡슐화를 시행하는 데 주로 사용됩니다.

캡슐화는 객체와 그 구성 요소가 객체로 보호되고 제한되어야하는 객체 지향적 프로그래밍 (OOP)의 개념입니다. 익명의 내부 클래스와 일반적으로 내부 클래스는 특히 복잡한 객체에 대한 캡슐화를 실현하는 데 도움이됩니다. 별도의 외부 외부에 의존하는 클래스를 만들지 않고, 일부 구성 요소를 인위적으로 그리고 잠재적으로 노출시키는 클래스를 만들지 않고, 익명의 내부 클래스는 t 할 수 있습니다.즉 두 사람은 함께 견고하게.

일부 프로그래밍 언어에서 익명의 내부 클래스는 단일 상속의 제한을 극복하는 데 도움이 될 수 있습니다. 객체가 한 클래스에서 상속되지만 다른 클래스에 액세스 해야하는 경우 내부 클래스를 즉석에서 생성 한 다음 적절한 핸들러에게 전달할 수 있습니다. 이 기술은 콜백 및 이벤트 리스너에게 일반적입니다. 유일한 대안은 하나 또는 두 개의 메소드 만 재정의하는 전체 2 등급을 만드는 것입니다.

익명의 내부 클래스에는 캡슐화를 방지하고 범위를 시행하기 위해 몇 가지 제한이 있습니다. 주요 제한 사항은 익명의 내부 클래스가 해당 변수가 최종으로 선언되지 않는 한 메소드의 변수에 액세스 할 수 없다는 것입니다. 내면의 클래스는 계급의 수명을 넘어서서 계속 작동 할 수 있기 때문입니다. 랩핑의 변수수업은 생명이 끝나면 파괴 될 것이므로 내부 계급이 보유한 참고 문헌은 즉시 무효화 될 것입니다. 이것에 대한 유일한 예외는 인스턴스를 넘어서 존재하기 때문에 최종 변수입니다.

익명의 내부 클래스에 대한보다 구체적인 용도 중 하나는 코드 보호입니다. 많은 OOP 언어는 반사라는 메커니즘을 제공합니다. 반사를 통해 프로그램은 다른 클래스를 해부하고 코드 자체가 아닌 멤버 변수 및 메소드가 무엇인지 확인할 수 있습니다. 익명의 내부 클래스를 사용함으로써 내부 클래스의 내용은 반사로부터 보호되고 더 큰 클래스의 내부 작업은 효과적으로 숨겨 질 수 있습니다.

다른 언어

이 문서가 도움이 되었나요? 피드백 감사드립니다 피드백 감사드립니다

어떻게 도와 드릴까요? 어떻게 도와 드릴까요?