> Java > java지도 시간 > Java의 정적 메서드에서 비정적 변수에 액세스할 수 없는 이유는 무엇입니까?

Java의 정적 메서드에서 비정적 변수에 액세스할 수 없는 이유는 무엇입니까?

Barbara Streisand
풀어 주다: 2024-12-30 18:54:09
원래의
837명이 탐색했습니다.

Why Can't I Access a Non-Static Variable from a Static Method in Java?

오류: 정적 컨텍스트에서 비정적 변수를 참조할 수 없습니다.

코드에서 클래스 변수 개수를 선언하고 다음을 시도합니다. 정적 메소드 main 내에서 액세스하십시오. 이 오류는 비정적 컨텍스트 내에서 선언된 변수를 정적 컨텍스트에서 직접 참조할 수 없기 때문에 발생합니다.

정적 및 비정적 컨텍스트 이해:

  • 정적 컨텍스트: 특정 인스턴스와 관계없이 클래스 자체를 나타냅니다. 정적 메서드 및 변수는 개별 인스턴스가 아닌 클래스에 속합니다.
  • 비정적 컨텍스트: 클래스의 특정 인스턴스를 나타냅니다. 비정적 메서드와 변수는 개체에 속하며 인스턴스에 따라 다릅니다.

귀하의 예에서 count는 비정적 변수입니다. 즉, MyProgram 클래스의 각 인스턴스에만 해당됩니다. 오류를 수정하려면 MyProgram의 인스턴스를 생성하고 비정적 메서드 내에서 액세스 횟수를 생성해야 합니다.

해결책:

  1. MyProgram 클래스의 인스턴스 생성:
MyProgram obj = new MyProgram();
로그인 후 복사
  1. 비정적 내 액세스 횟수 메소드:
public void run() {
    System.out.println(count);
}
로그인 후 복사
  1. 기본 메소드에서 run 메소드를 호출합니다.
public static void main(String[] args) {
    MyProgram obj = new MyProgram();
    obj.run();
}
로그인 후 복사

다음 단계를 수행하면 비정적 메소드를 보장할 수 있습니다. 변수 count는 비정적 컨텍스트 내에서 액세스됩니다.

위 내용은 Java의 정적 메서드에서 비정적 변수에 액세스할 수 없는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿