2010-07-31 6 views
0

정적 메서드 내에서 정적이 아닌 데이터 멤버를 사용할 수없는 이유는 무엇입니까?정적 메서드와 정적 데이터

+0

질문을 이해할 수 없습니다. ** 정적 메서드 ** 내 정적 메서드 외부 ** – Sarfraz

+0

: 아마도 정적 메서드 내에서 해당 메서드 외부에 선언 된 비 정적 데이터 멤버를 사용할 수 없습니다. – Yellowfog

답변

4

정적이 아닌 구성원은 개체에 속합니다. 정적 메소드에는 객체가 없습니다.

우리가 MyClass 한 곳 member = 1의 두 인스턴스와 다른 member = 2 을 가지고 우리가 statFunc를 호출 할 경우 statFunc이 member의 값을 사용 할 생각이 없습니다

class MyClass { 
int member; 
. . . 

public static int statFunc() { 
    . . . 
    foo = member; 
    . . . 
} 
. . . 

}

있는 경우.

-1

아무 의미가 없기 때문에. 인스턴스 변수는 클래스의 인스턴스와 연관됩니다. 정적 메소드는 그렇지 않습니다. 정적 메서드 내에서 어떤 인스턴스의 변수에 대해 이야기하고 싶습니까?

+0

누군가가 동의하지 않습니까? – EJP

0

비 정적 데이터 유형은 클래스의 인스턴스를 참조하며,이 변수의 값은 클래스에서 작성하는 각 인스턴스에 따라 다를 수 있습니다. 예를 들어

는 다음 코드를 살펴 :

public class name { 

String name; 

} 

각 이름의 객체가 다른 이름을 가질 수 있습니다.

이 때문에 비 정적 변수는 비 정적 메서드에서만 액세스 할 수 있습니다. 그렇지 않으면 정적 메서드는 어떤 인스턴스 변수가 ment인지 모를 것입니다.

이 정보가 도움이되기를 바랍니다.

관련 문제