Hal yang paling menakutkan adalah tidak membuat kesalahan, tetapi tidak menemukannya. Sampai sekarang, saya tahu bahwa ada sesuatu yang salah dengan pemahaman saya tentang variabel kelas.
Mungkin itu karena kurangnya penggunaan variabel kelas, dan masalah ini belum ditemukan . Saya hanya belajar variabel kelas apa ketika saya menonton C ++ baru -baru ini ?
Saya dulu berpikir bahwa satu -satunya perbedaan antara variabel kelas dan variabel anggota adalah bahwa variabel kelas dapat diakses secara langsung melalui nama kelas dan statis. Variabel anggota harus dipakai dan diakses melalui instance.
Saya tidak pernah berharap bahwa saya mengabaikan bahwa hanya ada satu variabel kelas dalam satu kelas, dan setiap contohnya sama. Modifikasi dalam satu contoh akan mempengaruhi variabel kelas dalam kasus lain ... (meskipun tidak ada bug yang disebabkan oleh ini biasanya, saya masih perlu menebus kerentanan kognitif).
Berikut adalah 2 contoh yang ditulis dalam Java dan Python :
kelas publik oo {public static string s; string publik m; static {s = "Ever"; } public static void main (string [] args) {oo o1 = oo baru (); Oo o2 = oo baru (); o1.m = "sekali"; // Nilai/alamat variabel kelas dalam contoh yang berbeda adalah sistem yang sama.out.println (O1.S); System.out.println (O2.S); System.out.println (O1.S.HashCode ()); System.out.println (o2.s.hashcode ()); o1.s = "123"; System.out.println (O2.S); // Ubah variabel kelas dan mempengaruhi instance lain System.out.println (O1.M.HashCode ()); System.out.println (o2.m.hashcode ()); // nullpointerexception // variabel anggota memiliki alamat yang berbeda}} #!/bin/pythonClass B: def whoami (self): print ("__ class __:%s, self .__ kelas __:%s"%(__ kelas __, self .__ kelas __)) kelas c (b): count = 0 def __init __ (self): super (c, self). self.num += 1 def cetak (self): print ("count_id:%s, num_id:%s"%(id (__ class __. count), id (self.num)) cetak ("Count:%d, num:%d"%(__ class __. count, self.num)) i1 = c () i2 = class __. Pada 1 kali, variabel anggota I2 meningkat 2 kali, dan variabel kelas meningkat 3 kali dalam total i1.add () i2.add () i2.add () i1.print () i2.print ()Di atas adalah semua tentang artikel ini. Liburan akan berakhir besok. Saya berharap semua orang akan secara aktif mengabdikan diri mereka untuk pekerjaan mereka dan terus memperhatikan artikel yang dibagikan oleh editor.