2014-01-28 3 views
-6

특정 클래스의 정적 메서드가 클래스 (개체)의 동일한 인스턴스와 다른 클래스 (개체)의 인스턴스를 참조 할 수없는 이유는 무엇입니까?정적 메서드가 인스턴스 메서드를 참조 할 수없는 이유는 무엇입니까?

나는 이것을 교과서에서 읽었습니다.

+0

정적 메서드는 개체 인스턴스에 바인딩되지 않기 때문에. Java는 어떤 객체를 사용할 지 어떻게 알 수 있습니까? 정적 메서드는 인스턴스를 만들지 않고 호출 할 수 있습니다. – kwatford

+0

정적 메서드는 해당 클래스의 개체를 인스턴스화하지 않고 호출 할 수 있습니다. 정적 메서드에 전달 된 개체 인스턴스가 있으면 인스턴스 메서드를 참조 할 수 있습니다. –

답변

1

static은 클래스의 인스턴스없이 사용할 수 있기 때문에. 예를 들어, Integer.parseInt(...)을 사용하는 경우 클래스 Integer의 이름을 사용하여 호출하면 인스턴스를 생성하지 않습니다.

System.out.println(Integer.parseInt("123")); // Called with the name of the class 

그렇다면 static 방법으로 인스턴스를 참조 할 수 있다면 어떨까요? 사용자가 클래스 이름을 사용하여 (인스턴스를 만들지 않고) 인스턴스를 호출하면 메서드는 참조 할 인스턴스를 갖지 않습니다.

Integer i = 0; 
System.out.println(i.parseInt("123")); // Can also be called with an instance, but not recommended 
0

사람 :

당신은 또한 인스턴스와 static 메소드를 호출 할 수 있습니다 있지만 권장되는 방법은이 static 방법입니다 것을 강조하고, 클래스의 이름으로 호출하는 것입니다 인스턴스가 일 경우 static method (어떤 인스턴스의 경우이 아닌 )이 참조됩니까?

응답 : 없음/결정 불가능한; 0..n 인스턴스가있을 수 있기 때문에 의미가 없습니다.

0

인스턴스 메서드는 해당 클래스의 개체를 만들 때만 액세스 할 수 있습니다. 정적 메서드는 특정 클래스의 인스턴스를 만드는 경우 인스턴스 메서드에만 액세스 할 수 있습니다.

관련 문제