2013-05-24 3 views
-7

자바에서 static 메소드가 정적이거나 비 정적 인 컨텍스트에서 호출 될 수 있는지 궁금합니다.정적 또는 비 정적 컨텍스트에서 정적 메서드를 호출 할 수 있습니까? 자바에서

+9

시도해 보셨습니까? –

+0

확실히 인스턴스 메서드 내부에서 정적 메서드를 호출 할 수 있습니다. 그리고 당신이'myInstance.staticMethod()'를 할 수있게 해주는 javac의 "편리한 기능"이있다. 당신이'MyClass.staticMethod()'라고 말했던 것과 같은 결과를 얻는다. 여기서'MyClass'는 myInstance 변수. –

+0

@HotLicks : 답변 해주세요. –

답변

9

예, 완전히 정적 또는 비 정적 컨텍스트에서 호출 할 수 있습니다.

+0

; D이 답변을 좋아합니다. – arynaq

4

물론 : 정적 메서드는 인스턴스 참조가 필요하지 않으므로 두 인스턴스 모두에서 호출 할 수 있습니다. 인스턴스 메서드는 암시 적으로 개체를 추가 인수로 사용하기 때문에 개체에서 호출하는 데 제한이 있습니다.

2

JVM이 우리보다 더 빨리 알려줄 것입니다. 그러나 정적 또는 비 정적 컨텍스트에서 정적 메서드를 호출 할 수 있습니다.

개체 인스턴스를 참조하지 않고 정적 컨텍스트에서 비 정적 메서드를 호출 할 수 없습니다.

0

예, 가능합니다. 그러나 정적 멤버는 클래스 수준에서 존재하므로 정적 멤버를 개체 참조로 참조하는 대신 클래스 이름으로 사용하는 것이 좋습니다.

1

예, 호출 할 수 있습니다.

public class A{ 

    public static void static_B(){} 
    public void normal_C(){ 
    A.static_B(); 
    static_B(); 
    } 
    public void static_C(){ 
    A.static_B(); 
    static_B(); 
    } 

} 

위의 코드는 정상적으로 작동합니다.

관련 문제