Ahli data statik, seperti pembolehubah "i" dalam kod yang disediakan, memerlukan pengendalian khas semasa pemula. Adalah penting untuk memahami perbezaan antara pemula, yang memberikan nilai dan definisi, yang mengisytiharkan kewujudan pembolehubah.
Dalam contoh kod, data statik ahli "i" dimulakan di luar definisi kelas. Ini adalah keperluan kerana definisi mesti menyediakan alamat dalam ingatan untuk pembolehubah, yang tidak boleh ditentukan dalam definisi kelas itu sendiri.
Sebaliknya, pemula hanya memberikan nilai kepada pembolehubah tanpa menyatakannya alamat. Ini membolehkan cara ringkas untuk menetapkan nilai awal di satu tempat, mengelakkan keperluan untuk mengulanginya dalam pembina.
Ahli data bukan statik, seperti "NormalValue " dalam contoh, wujud dalam keadaan kelas. Alamat mereka bergantung pada instance yang mereka miliki. Oleh itu, takrifan ahli data bukan statik dicipta apabila tika dibuat.
Sebaliknya, ahli data statik mempunyai alamat tetap dan wujud secara bebas daripada sebarang tika. Untuk memastikan mereka mendapat alamat yang unik, pemaut memerlukan satu definisi untuk setiap ahli data statik. Memandangkan definisi kelas biasanya disertakan dalam berbilang fail objek, mentakrifkan ahli data statik dalam kelas akan melanggar keperluan ini.
Untuk menyelesaikan isu ini, definisi ahli data statik mestilah diletakkan di luar pengisytiharan kelas. Ini memastikan bahawa ia muncul dalam satu fail objek, membenarkan pemaut untuk menetapkan alamat yang betul.
Konsep mentakrifkan ahli data statik di luar kelas adalah serupa dengan mengisytiharkan pembolehubah luaran. Perisytiharan extern menunjukkan bahawa pembolehubah ditakrifkan di tempat lain dalam program. Begitu juga, pengisytiharan ahli data statik dalam definisi kelas boleh dilihat sebagai pengisytiharan luaran, dengan definisi sebenar disediakan secara berasingan.
Atas ialah kandungan terperinci Bagaimana dan Mengapa Kami Memulakan Ahli Data Statik di Luar Definisi Kelas?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!