정적 메서드의 비정적 필드 참조
Java에서는 비정적 필드 또는 메서드에 대한 정적 참조를 만들 수 없습니다. 이는 비정적 필드 및 메서드와 달리 정적 요소가 클래스 인스턴스와 독립적으로 존재하기 때문입니다.
다음 코드를 고려하세요.
public class NonStaticFieldReference { private float r; // Non-static field public static void main(String[] args) { System.out.println(r); // Error! c_area(); // Error! } private static void c_area() { // Cannot reference non-static field r from static method } }
이 예에서 기본( ) 메서드는 정적입니다. 즉, 비정적 필드 'r'에 액세스할 수 없습니다. 마찬가지로 정적 메서드 c_area()는 비정적 필드 'r'에 액세스할 수 없습니다.
해결 방법
이 문제를 해결하려면 클래스의 인스턴스를 만들고 해당 인스턴스를 통해 비정적 필드와 메소드에 액세스합니다.
public class NonStaticFieldReference { private float r; // Non-static field public static void main(String[] args) { NonStaticFieldReference instance = new NonStaticFieldReference(); instance.r = 5; instance.c_area(); } private void c_area() { // Access non-static field r from non-static method } }
이렇게 하면 비정적 필드 'r'이 클래스의 객체를 통해 액세스되어 적절한 필드 참조가 가능해집니다.
위 내용은 정적 메소드가 Java의 비정적 필드에 액세스할 수 없는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!