자바 동적바인딩 예제

정적 바인딩: 컴파일러에서 컴파일타임에 확인할 수 있는 바인딩을 정적 또는 초기 바인딩이라고 합니다. 모든 정적, 개인 및 최종 메서드의 바인딩은 컴파일 타임에 수행됩니다. 그래서, 이것은 자바에서 정적 바인딩 대 동적 바인딩에 관한 것이었습니다. 당신이 우리의 설명을 좋아 바랍니다. 부모 및 자식 클래스의 정적 메서드: 정적 바인딩 여기 Java에서 정적 및 동적 바인딩과 관련 된 몇 가지 중요 한 사항을 설명 합니다.: 정적, 최종 및 개인 메서드의 바인딩은 항상 정적 바인딩 을 제공 하기 때문에 정적 바인딩 성능과 재정의할 수 없으므로 항상 일부 로컬 클래스의 개체에 의해 액세스됩니다. 다른 방법은 기본적으로 Java의 가상 메서드입니다. JVM은 런타임에 이러한 메서드를 해결하며 이는 동적 바인딩입니다. 다음은 Java에서 정적 및 동적 바인딩을 모두 이해하는 데 도움이되는 예제입니다. Java에서 재정의하는 것은 부모 클래스와 자식 클래스가 동일한 메서드를 가지므로 호출할 메서드를 결정하지 않으므로 동적 바인딩의 가장 좋은 예로 간주될 수 있습니다. 메서드 본문에 대한 메서드 호출 연결을 바인딩이라고 합니다. 바인딩에는 컴파일 타임에 발생하는 정적 바인딩과 런타임에 발생하는 동적 바인딩의 두 가지 유형이 있습니다.

JAVA에서 정적 및 동적 바인딩을 설명하기 전에이 개념을 더 잘 이해하는 데 도움이되는 몇 가지 용어를 볼 수 있습니다. 따라서 모든 개체 참조는 해당 개체의 모든 메서드 참조를 포함하는 테이블에 대한 참조를 간접적으로 보유합니다. Java는 C ++에서이 개념을 차용했으며이 테이블을 가상 테이블 (vtable)이라고합니다. 바인딩은 메서드 호출과 메서드 정의 사이의 링크를 나타냅니다. 이 그림은 바인딩되는 것을 명확하게 보여줍니다. 메서드 호출을 메서드 본문에 연결하면 바인딩이라고 합니다. Maulik이 말했듯이 “정적 바인딩은 바인딩을 위해 Type(Java의 클래스) 정보를 사용하지만 동적 바인딩은 Object를 사용하여 바인딩을 해결합니다.” 그래서이 코드 : 글쎄, 대답은 바이트 코드 자체에 숨겨져 있으며 호출 가상 명령 세트입니다. JVM은 호출 가상 명령을 사용하여 C++ 가상 메서드와 동등한 Java를 호출합니다. C ++에서 다른 클래스에서 한 메서드를 재지정하려면 가상으로 선언해야하지만 Java에서는 자식 클래스의 모든 메서드를 재정의 할 수 있기 때문에 기본적으로 모든 메서드가 가상입니다 (개인, 최종 및 정적 메서드 제외). 정적 바인딩: 정적 바인딩에서 다음 세 가지 문제에 대해 설명합니다. 모든 이름은 컴파일 타임에 정적으로 바인딩됩니다.

시작 메서드에 대해 Car에서 다른 이름을 선택하고 @Override 주석을 유지한 경우 이름이 정적으로 바인딩되어 있으므로 예제가 컴파일되지 않습니다. Java가 정적으로 바인딩된 언어이고 동적 바인딩이 없는 경우의 완벽한 예는 방문자 패턴의 필요성입니다. Java에서 동적 바인딩의 더 좋은 예는 JavaBeans입니다. 동적 바인딩: 동적 바인딩에서 오는 세 가지 문제는 다음과 같습니다: 이 자습서에서는 정적 및 동적 바인딩, 차이점 및 기억해야 할 중요한 점에 대해 배웠습니다. 또한 정적 바인딩 및 동적 바인딩예제및 주어진 출력에 대해 설명했습니다. 마침내 동적 및 정적 바인딩에 대한 몇 가지 필수 사항을 보았습니다. 또한 Java에서 정적 바인딩과 동적 바인딩의 차이점에 대한 추가 쿼리가 있는 경우 주석 섹션에서 언제든지 질문하십시오. 나는이 튜토리얼을 발견했을 때 정적 대 동적 바인딩의 차이를 찾고 있었다. 이제 정적 바인딩이 무엇인지, Java에서 동적 바인딩이 무엇인지 정확히 알 수 있습니다. 매우 정확하고 간단한 예제는 자바에서 정적 및 동적 바인딩을 모두 이해하는 데 도움이됩니다. 감사합니다 안녕, 그래서 내가 말하는 경우 맞아 – 비 개인 인스턴스 방법의 바인딩은 런타임에 수행됩니다.

Comments are closed.