JAVA: "비정적 필드에 대한 정적 참조를 만들 수 없음" 및 "비정적 메서드에 대한 정적 참조를 만들 수 없음" 오류 이해
Java 프로그래밍에는 정적이거나 비정적인 필드와 메서드를 조작하는 작업이 포함되는 경우가 많습니다. 일반적인 오류를 방지하려면 둘 사이의 차이점을 이해하는 것이 중요할 수 있습니다.
정적 및 비정적
정적 필드와 메서드는 클래스 자체와 연결되어 있습니다. 클래스의 특정 객체보다. 객체를 생성할 필요 없이 클래스 이름을 사용하여 직접 액세스할 수 있습니다. 반면, 비정적 필드와 메서드는 인스턴스별로 다르며 사용하려면 클래스의 개체가 필요합니다.
"비정적 필드/메소드에 대한 정적 참조를 만들 수 없습니다." 오류
이 오류는 정적 메서드나 클래스 선언 자체 등 정적 컨텍스트 내에서 비정적 필드나 메서드에 액세스하려고 할 때 발생합니다. 이 오류를 해결하려면 필드 또는 메서드를 정적으로 선언하거나 클래스의 인스턴스를 만들고 개체 인스턴스를 통해 비정적 멤버에 액세스할 수 있습니다.
제공한 예제 코드에서:
<code class="java">public class Cerchio { float r; // non-static field float area; // non-static field float cfr; // non-static field public static void main(String[] args) { r = 5; // Error: Cannot access non-static field 'r' from static method 'main' // ... } }</code>
정적 메인 메소드에서 비정적 필드 r에 직접 액세스하려고 하여 오류가 발생했습니다. 올바른 접근 방식은 아래와 같이 Cerchio 클래스의 인스턴스를 생성하고 객체를 통해 r에 액세스하는 것입니다.
<code class="java">public class Cerchio { float r; // non-static field float area; // non-static field float cfr; // non-static field public static void main(String[] args) { Cerchio cerchio = new Cerchio(); cerchio.r = 5; // OK: Accessing non-static field through an object // ... } }</code>
이러한 규칙을 준수하면 "비-에 대한 정적 참조를 만들 수 없습니다"라는 오류를 피할 수 있습니다. Static Field/Method' 오류가 발생하고 더욱 깔끔하고 강력한 Java 코드가 작성됩니다.
위 내용은 Java에서 \"비정적 필드에 대한 정적 참조를 만들 수 없습니다\" 및 \"비정적 메서드에 대한 정적 참조를 만들 수 없습니다\" 오류가 발생하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!