Rumah >Java >javaTutorial >Apakah fungsi pengubahsuai statik dalam bahasa Java?
Dalam kelas Java, kita sering melihat kata kunci statik, yang sering dipanggil statik. Pengubah suai statik boleh digunakan untuk mengubah suai ahli data dan ahli kaedah, tetapi ia tidak boleh mengubah suai kelas (di sini merujuk kepada kelas luaran) dan pembina. Contohnya:
package com.csst.vo; public class User { private String name; private static int count; public String getName() { return name; } public void setName(String name) { this.name = name; } public static int getCount() { return count; } public static void main(String[] args){ User user1=new User(); User user2=new User(); user1.setName("Rose"); user2.setName("Kate"); user1.count=10; user2.count=20; System.out.println("user1.name:"+user1.getName()+" user2.name:"+user2.getName()); System.out.println("user1.count:"+User.getCount()+"user2.count:"+user2.count); } }
Hasil daripada menjalankan program ini ialah:
user1.name:Rose user2.name:Kate user1.count:20 user2.count:20
Kita boleh mendapati bahawa atribut nama pengguna1 dan pengguna2 adalah berbeza, masing-masing, seperti yang dinyatakan dengan memanggil setName untuk objek. Walaupun pengguna1 dan pengguna2 masing-masing menentukan nilai yang berbeza untuk atribut kiraan, nilai kiraan keluaran akhir kedua-duanya adalah 20. Sebabnya ialah kiraan diubah suai secara statik, tetapi nama tidak diubah suai mengikut kiraan.
Ahli data atau ahli kaedah yang diubah suai oleh pengubah statik dipanggil ahli statik, atau ahli kelas yang tidak diubah suai oleh statik dipanggil ahli contoh. Ahli statik dimulakan sekali sahaja dan dikongsi oleh semua objek, jadi kiraan akan mengeluarkan dua 20s. Ahli instance hanya dimulakan apabila objek dimulakan Setiap kali objek dicipta, ia akan dimulakan sekali. nama telah dimulakan dua kali apabila pengguna1 dan pengguna2 dicipta, jadi output akhir ialah Rose dan Kate.
Selain itu, ahli statik, kerana mereka dikongsi oleh kelas, boleh dipanggil bukan sahaja oleh objek, tetapi juga oleh nama kelas. Dalam kaedah statik, ahli bukan statik tidak boleh digunakan secara langsung Jika digunakan, objek mesti dimulakan dan dipanggil. Jika terdapat kod berikut dalam User.java dalam contoh di atas, ralat penyusunan akan berlaku.
public static void test(){ setName("test"); }
boleh diubah suai seperti berikut:
public static void test(){ User user=new User(); user.setName("test"); }
Atas ialah kandungan terperinci Apakah fungsi pengubahsuai statik dalam bahasa Java?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!