Merujuk Medan Bukan Statik daripada Kaedah Statik
Apabila menghadapi ralat "tidak boleh membuat rujukan statik kepada medan bukan statik," adalah penting untuk memahami perbezaan antara medan dan kaedah statik dan bukan statik.
Medan dan kaedah statik ialah atribut dan fungsi peringkat kelas yang tidak dikaitkan dengan mana-mana contoh objek tertentu. Sebaliknya, medan dan kaedah bukan statik adalah khusus contoh dan hanya mempunyai makna dalam konteks tika kelas.
Dalam konteks kod yang disediakan, kaedah utama ditandakan sebagai percubaan statik untuk mengakses imbangan medan bukan statik. Walau bagaimanapun, ini tidak dibenarkan, kerana kaedah statik tidak boleh merujuk secara langsung medan bukan statik. Sebabnya, kaedah statik tidak mempunyai rujukan tersirat kepada contoh tertentu kelas.
Untuk menyelesaikan isu ini, anda boleh sama ada menjadikan kaedah utama bukan statik (mengalih keluar kata kunci "statik" daripadanya. pengisytiharan) atau ubah suai kaedah pengeluaran dan deposit untuk menggunakan akses peringkat contoh kepada medan baki. Contohnya:
<code class="java">public Account() { // ... balance = 20000; } public void withdraw(double withdrawAmount) { balance -= withdrawAmount; }</code>
Sebagai alternatif, anda boleh menentukan kaedah statik untuk melaksanakan operasi pengeluaran dan deposit jika dikehendaki.
Atas ialah kandungan terperinci Mengapakah Saya Tidak Boleh Mengakses Medan Bukan Statik daripada Kaedah Statik?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!