Rujukan Medan Bukan Statik dalam Konteks Statik
Dalam Java, kaedah statik tidak boleh mengakses medan bukan statik secara langsung. Ralat ini biasanya berlaku apabila cuba mengakses pembolehubah contoh daripada kaedah statik.
Memahami Masalah
Dalam kod yang diberikan, ralat berlaku dalam kaedah utama:
<code class="java">Account account = new Account(1122, 20000, 4.5); account.withdraw(balance, 2500);</code>
Di sini, kaedah withdraw() adalah statik, tetapi ia cuba mengakses baki medan bukan statik. Memandangkan kaedah utama adalah statik, ia tidak boleh merujuk kepada pembolehubah contoh seperti imbangan.
Penyelesaian
Untuk menyelesaikan ralat ini, jadikan sama ada kaedah bukan statik atau medan statik.
Pilihan 1: Jadikan Kaedah Pengeluaran Bukan Statik
Tukar kaedah withdraw() kepada:
<code class="java">public void withdraw(double withdrawAmount) { balance -= withdrawAmount; }</code>
Sekarang, kaedah boleh mengakses medan imbangan kerana ia bukan statik.
Pilihan 2: Jadikan Medan Imbangan Statik
Sebagai alternatif, jadikan medan imbangan statik:
<code class="java">private static double balance = 0;</code>
Kini, medan imbangan boleh diakses daripada konteks statik seperti kaedah utama:
<code class="java">Account account = new Account(1122, 20000, 4.5); account.withdraw(balance, 2500);</code>
Atas ialah kandungan terperinci Mengapakah Saya Tidak Boleh Mengakses Medan Bukan Statik daripada Kaedah Statik di Jawa?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!