Rumah >Java >javaTutorial >Mengapa Saya Tidak Boleh Mengakses Pembolehubah Bukan Statik daripada Kaedah Statik di Java?

Mengapa Saya Tidak Boleh Mengakses Pembolehubah Bukan Statik daripada Kaedah Statik di Java?

Barbara Streisand
Barbara Streisandasal
2024-12-30 18:54:09862semak imbas

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

Ralat: Pembolehubah Bukan Statik Tidak Boleh Dirujuk daripada Konteks Statik

Dalam kod anda, anda mengisytiharkan kiraan pembolehubah kelas dan cuba untuk aksesnya dalam kaedah utama statik. Ralat ini berlaku kerana pembolehubah yang diisytiharkan dalam konteks bukan statik tidak boleh dirujuk terus daripada konteks statik.

Memahami Konteks Statik dan Bukan Statik:

  • Konteks Statik: Merujuk kepada kelas itu sendiri, bebas daripada sebarang contoh tertentu. Kaedah dan pembolehubah statik tergolong dalam kelas, bukan kepada kejadian individu.
  • Konteks Bukan Statik: Merujuk kepada tika tertentu kelas. Kaedah dan pembolehubah bukan statik tergolong dalam objek dan berbeza-beza berdasarkan kejadian.

Dalam contoh anda, kiraan ialah pembolehubah bukan statik, bermakna ia khusus untuk setiap tika kelas MyProgram. Untuk membetulkan ralat, anda perlu mencipta contoh MyProgram dan kiraan akses dalam kaedah bukan statiknya.

Penyelesaian:

  1. Buat tika kelas MyProgram:
MyProgram obj = new MyProgram();
  1. Kiraan akses dalam bukan statik kaedah:
public void run() {
    System.out.println(count);
}
  1. Panggil kaedah larian daripada kaedah utama:
public static void main(String[] args) {
    MyProgram obj = new MyProgram();
    obj.run();
}

Dengan mengikuti langkah ini, anda memastikan bahawa kaedah bukan statik kiraan pembolehubah diakses dalam konteks bukan statik.

Atas ialah kandungan terperinci Mengapa Saya Tidak Boleh Mengakses Pembolehubah Bukan Statik daripada Kaedah 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