Rumah  >  Artikel  >  Java  >  Mengapa Saya Mendapat Ralat \"Tidak Dapat Membuat Rujukan Statik kepada Medan Bukan Statik\" di Java?

Mengapa Saya Mendapat Ralat \"Tidak Dapat Membuat Rujukan Statik kepada Medan Bukan Statik\" di Java?

Susan Sarandon
Susan Sarandonasal
2024-11-02 01:18:30943semak imbas

Why Am I Getting

Java: Penyelesaian untuk "Tidak Boleh Membuat Rujukan Statik kepada Ralat Bukan Statik"

Pernyataan Masalah:

Apabila cuba menyusun atur cara Java, ralat berlaku: "Tidak boleh membuat rujukan statik kepada medan bukan statik " atau "Tidak boleh membuat rujukan statik kepada kaedah bukan statik ."

Punca:

Ralat ini timbul apabila kaedah statik cuba mengakses medan atau kaedah bukan statik secara langsung. Medan dan kaedah bukan statik tergolong dalam tika kelas tertentu dan tidak boleh dirujuk dalam konteks statik.

Penyelesaian:

Untuk menyelesaikan isu, buat tika kelas dan kemudian gunakan kaedah pada kejadian itu:

<code class="java">public class Cerchio {

  float r;
  float area;
  float cfr;
  final double pi = 3.14;

  public static void main(String[] args) {
    System.out.println("CIRCLE PROGRAM\n");

    Cerchio cerchio = new Cerchio();
    cerchio.r = 5;
    cerchio.c_cfr(); // Invoke method on the instance 'cerchio'
    cerchio.c_area(); // Invoke method on the instance 'cerchio'
    System.out.println("The cir is: " + cerchio.cfr);
    System.out.println("The area is: " + cerchio.area);
  }

  float c_cfr() {
    cfr = (float) (2 * pi * r); // Casting remains the same
    return cfr;
  }

  float c_area() {
    area = (float) (pi * (r * r));
    return area;
  }
}</code>

Nota Tambahan:

  • Pertimbangkan untuk menggunakan getter dan setter untuk akses medan untuk menguatkuasakan enkapsulasi dan mengelakkan medan langsung akses.
  • Pastikan kod anda diinden dengan betul untuk kebolehbacaan dan pemahaman yang lebih baik.

Atas ialah kandungan terperinci Mengapa Saya Mendapat Ralat \"Tidak Dapat Membuat Rujukan Statik kepada Medan Bukan Statik\" di Java?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn