2011-12-20 4 views
-4

정적 키워드는 방법과 함께 사용하지 않는 것과 어떻게 다릅니 까? 단어를 사용하고 사용하지 않아 결과가 다른 예제를 제공 할 수 있습니까? 감사합니다. 앤디.'static'키워드는 Java에서 어떻게 작동합니까?

+6

http://docs.oracle.com/javase/tutorial/java/javaOO/classvars.html –

+1

이것은 매우 기본적인 Java Question이며 Android와 관련이 없습니다. 질문은 연구 노력이 거의 없음을 보여줍니다. -1 –

+0

http://www.roseindia.net/java/beginners/howtoaccessstaticmethod.shtml –

답변

1

정적 메소드는 다음과 같이, 클래스를 호출 할 수있다 정적 메서드에서는 다른 정적 메서드와 멤버에만 액세스 할 수 있습니다. 따라서 메서드에서 this 키워드를 사용하려면 static으로 선언하면 안됩니다. 정적 메서드는 클래스 자체에 기능을 제공하지만 비 정적 메서드는 해당 클래스의 개체에 기능을 제공합니다.

+0

대부분의 사람들이이 물건을 너무 복잡하게 설명합니다. –

0

결과는 다릅니다.

이 메서드가 다른 정적 요소 만 사용하는 경우 정적 요소가 선언되었는지 여부에 관계없이 동일한 결과를 반환합니다.

메서드에서 정적이 아닌 것을 사용하는 경우 정적으로 만들 수 없습니다 (컴파일 오류가 발생 함).

SomeClass.method(); 

비 정적 메소드는 다음과 같이 그 클래스의 인스턴스를 호출 할 수있다 :

SomeClass object = new SomeClass(); 
object.method(); 

1

독립 실행 형 프로그램을 만들 때 다음과 같은 방법을 사용할 수 있습니다.

public static void main(String[] arg) 

이제 정적 단어를 제거하고 프로그램을 실행하십시오. 주요 방법을 찾을 수 없다는 불평을 할 것입니다.

실행을 시작하려면 JVM은 둘러싸는 클래스의 인스턴스를 생성하지 않고 에 액세스 할 수 있어야하는 main 메소드가 필요합니다.

결론은 어떤 인스턴스도 생성되지 않고 static 유형의 엔티티 (클래스, 메소드, 변수 등)가 존재합니다. 이들은 Myclass.myInt 또는 MyClass.myMethod()이라는 표기법을 사용하여 직접 액세스 할 수 있으므로 클래스 정의에 대해 에 존재하며 모든 클래스 인스턴스에 공통 인 입니다.

0

정적 메서드는 instance 변수를 사용할 수 없습니다. 키워드는 정적 방법으로 사용할 수 없습니다.
정적 메서드는 클래스의 인스턴스를 만들지 않고 에 액세스 할 수 있습니다. 이 클래스에 정의 된 비 정적 메서드 및 변수를 사용하려고하면 컴파일러에서 비 정적 변수 나 메서드를 정적 컨텍스트에서 참조 할 수 없다고 말합니다. 정적 메소드는 다른 정적 메소드와 정적 변수 만 클래스에 정의하여 으로 호출 할 수 있습니다.

관련 문제