반응형
구체적으로, 나는이 코드를 시도하고 있었다 :
package hello;
public class Hello {
Clock clock = new Clock();
public static void main(String args[]) {
clock.sayTime();
}
}
그러나 그것은 오류를주었습니다
정적 메서드에서 비 정적 필드에 액세스 할 수 없습니다.
그래서 clock
의 선언을 다음과 같이 변경했습니다.
static Clock clock = new Clock();
그리고 그것은 일했습니다.선언 전에 그 키워드를 넣는 것은 무엇을 의미합니까?그 객체에 무엇을 할 수 있는지에 대해 정확히 무엇을 할 것인가?
해결 방법
static
멤버는 특정 인스턴스 대신 클래스에 속합니다.
이는 클래스의 백만 명의 인스턴스를 생성하는 경우에도 정적 필드의 하나의 [1] 의 한 인스턴스 만 존재한다는 것을 의미합니다.어떤 것을 만드십시오.모든 인스턴스에서 공유됩니다.
static
메소드는 특정 인스턴스에 속하지 않기 때문에 인스턴스 멤버를 참조 할 수 없습니다.주어진 예제에서 main
는 hello
클래스의 인스턴스를 알지 못한다 (그러므로 clock
클래스의 인스턴스)는 참조해야합니다....에 static
멤버는 static
멤버 만 참조 할 수 있습니다.인스턴스 구성원은 물론 <코드> 정적 멤버에 액세스 할 수 있습니다.
사이드 참고 : 물론 static
멤버는 객체 참조 를 통해 인스턴스 멤버 에 액세스 할 수 있습니다.
예:
public class Example {
private static boolean staticField;
private boolean instanceField;
public static void main(String[] args) {
// a static method can access static fields
staticField = true;
// a static method can access instance fields through an object reference
Example instance = new Example();
instance.instanceField = true;
}
[1] : 런타임 특성에 따라 클래스 로더 또는 appdomain 또는 스레드 당 하나 일 수 있지만 그 점 옆에 있습니다.
참조 페이지 https://stackoverflow.com/questions/413898
반응형
'자바' 카테고리의 다른 글
Java 배열을 인쇄하는 가장 간단한 방법은 무엇입니까? (0) | 2021.04.13 |
---|---|
INT에서 String에서 어떻게 변환합니까? (0) | 2021.04.13 |
HashMap에 키가 주어지면 값을 업데이트하는 방법은 무엇입니까? (0) | 2021.04.13 |
MD5 해시를 어떻게 생성 할 수 있습니까? (0) | 2021.04.12 |
Java - POST 메서드를 통해 HTTP 매개 변수를 쉽게 전송합니다 (0) | 2021.04.12 |
댓글