정적 메서드 호출 및 Null 참조 이해
일반적인 오해와는 달리 Null 참조에서 (정적) 메서드를 호출하면 다음이 발생하지 않습니다. NullPointerException. 이 동작을 이해하려면 Java의 정적 메서드 개념을 이해하는 것이 중요합니다.
정적 메서드: 공유 리소스
비정적(인스턴스) 메서드와 달리 특정 개체 인스턴스와 연결되어 있으면 정적 메서드는 해당 개체가 속한 클래스에 바인딩됩니다. 유형 수준에서 작동하므로 객체에 액세스할 필요가 없습니다.
정적 메서드 액세스: 유형 표현식을 통해
정적 메서드를 호출하는 적절한 방법 Why.test()와 같은 유형 표현식을 사용하는 것입니다. 이 접근 방식을 사용하면 객체 인스턴스를 포함하지 않고 클래스에서 정적 메서드가 직접 호출됩니다.
함정: 객체 참조 표현식 사용
Java에서는 다음을 통해 정적 멤버에 액세스할 수 있지만 객체 참조 표현식을 사용하는 것은 권장되지 않으며 혼란을 초래할 수 있습니다. 이 접근 방식(Why aNull = null; aNull.test())을 사용할 때 참조의 선언된 유형(이유)에 따라 호출되는 정적 메서드가 결정됩니다.
객체 참조 표현식 사용의 의미
결론
혼란을 피하고 예측 가능성을 보장하려면 항상 유형 표현식을 사용하여 정적 메서드를 호출하십시오. 정확하고 유지 관리 가능한 Java 코드를 작성하려면 정적 멤버의 특성과 해당 액세스 메커니즘을 이해하는 것이 중요합니다.
부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.
Copyright© 2022 湘ICP备2022001581号-3