Pelajaran utama daripada artikel ini
Lima peraturan pembina
Pembina dalam Java ialah kaedah khas yang digunakan untuk memulakan objek. Ia dipanggil secara automatik apabila objek kelas dibuat dan bertanggungjawab untuk menetapkan keadaan awal dan nilai atribut objek.
Setiap kelas mempunyai sekurang-kurangnya satu pembina. Jika tiada pembina diisytiharkan, pengkompil akan memasukkan pembina tanpa hujah lalai.
Berikut ialah output
Jika pembina induk mengambil hujah, pembina super() juga akan mengambil hujah.
Kami merujuk kepada arahan super() sebagai pembina induk walaupun yang mengambil hujah.
Di Jawa, jika pembina tidak secara eksplisit memanggil pembina lain dalam kelas yang sama (menggunakan ini(...)) atau pembina induk (menggunakan super(...)), maka pengkompil Java secara tersirat akan memasukkan panggilan ke pembina tanpa hujah bagi kelas induk (super()). Tingkah laku ini memastikan logik permulaan kelas induk dijalankan sebelum logik kelas anak
Subkelas boleh mentakrifkan pembina tanpa hujah walaupun ibu bapa mereka tidak. Pembina kanak-kanak memetakan pembina induk melalui panggilan eksplisit arahan super().
Pembina induk sentiasa dilaksanakan sebelum pembina anak. Ia dipanggil apabila anda membuat contoh baharu kelas menggunakan kata kunci baharu. Setiap pembina dalam kelas boleh mempunyai parameter yang berbeza (pembina lebih muatan), membenarkan cara yang berbeza untuk memulakan objek.
1. Memanggil Pembina dengan
baharu
Apabila anda membuat contoh kelas menggunakan baru, pembina yang sepadan dipanggil. Jika terdapat berbilang pembina, pembina yang mempunyai parameter yang sepadan dipilih.
Orang baharu() memanggil pembina tanpa hujah.
Orang baharu("Alice", 25) memanggil pembina dengan dua parameter.
2. Memanggil Seorang Pembina daripada Yang Lain (Pembinaan Rantaian)
Dalam kelas, anda boleh memanggil satu pembina daripada yang lain menggunakan ini(...). Ini dipanggil constructor chaining. Ia membantu untuk menggunakan semula logik pembina dan mengelakkan pertindihan kod.
Dalam perkara di atas, Kereta baharu("Toyota") memanggil pembina dengan satu parameter, yang kemudiannya memanggil ini(model, 2023) untuk merantai kepada pembina dengan dua parameter.
3. Memanggil Pembina Ibu Bapa (super(...))
Apabila kelas memanjangkan kelas lain, anda boleh memanggil pembina kelas induk menggunakan super(...). Ini diperlukan jika kelas induk tidak mempunyai pembina tanpa hujah atau jika anda ingin menyampaikan hujah khusus kepada pembina induk.
.
Dalam perkara di atas, Anjing baharu("Buddy") memanggil theDogconstructor, yang kemudiannya memanggil super("Mammal") untuk memulakan medan jenis dalam kelasAnimal`.
1. Permulaan Objek: Pembina memastikan objek berada dalam keadaan sah sebaik sahaja objek itu dibuat. Dengan memulakan medan dan menyediakan data penting, pembina menjamin bahawa objek sedia untuk digunakan serta-merta selepas instantiasi.
2. Fleksibiliti Berlebihan: Java membenarkan pembina dibebankan, membolehkan berbilang cara untuk mencipta dan memulakan objek. Fleksibiliti ini membantu dalam mengendalikan pelbagai keperluan permulaan dan memudahkan penciptaan objek dalam konteks yang berbeza.
3. Enkapsulasi Logik Permulaan: Pembina merangkum logik permulaan, memastikan kod persediaan teratur dan membenarkan pengubahsuaian mudah tanpa memberi kesan kepada kelas atau kod pelanggan yang lain. Ini juga menyembunyikan butiran persediaan yang kompleks, memudahkan penciptaan objek untuk pembangun lain.
4. Penciptaan Objek Tidak Boleh Ubah: Untuk kelas yang direka bentuk untuk tidak berubah, pembina membenarkan tetapan semua medan yang diperlukan sekali, menjadikannya mustahil untuk mengubah suainya kemudian. Ini penting untuk mencipta objek yang boleh dipercayai dan selamat benang dalam aplikasi berbilang benang.
5. Kebolehgunaan Kod melalui Rantaian: Pembina boleh memanggil satu sama lain (menggunakan ini(...) atau super(...)), mendayakan logik permulaan dikongsi dalam kelas yang sama atau daripada kelas induk. Ini membantu mengelakkan lebihan dan menggalakkan kod yang lebih bersih, DRY (Jangan Ulangi Diri Sendiri).
6. Menguatkuasakan Medan Diperlukan: Pembina membenarkan medan wajib ditetapkan pada masa penciptaan objek. Tanpa pembina, medan yang diperlukan boleh terlepas, berpotensi meninggalkan objek dalam keadaan tidak lengkap atau tidak konsisten.
7. Kebolehbacaan Dipertingkat: Pembina meningkatkan kebolehbacaan kod dengan menjelaskan parameter mana yang penting untuk penciptaan objek. Ini menjelaskan kepada pembangun lain nilai yang diperlukan untuk memulakan objek dengan betul.
8. Panggilan Automatik ke Pembina Kelas Super: Pembina secara automatik memanggil pembina kelas super, memastikan medan induk dan logik permulaan dilaksanakan terlebih dahulu. Panggilan automatik ini menyokong warisan dengan menyediakan keseluruhan hierarki kelas.
9. Menyokong Suntikan Ketergantungan: Pembina sesuai untuk suntikan kebergantungan, terutamanya dalam rangka kerja seperti Spring, di mana kebergantungan boleh disuntik melalui parameter pembina. Pendekatan ini meningkatkan modulariti, kebolehujian dan fleksibiliti dalam aplikasi.
10. Memudahkan Penciptaan Objek dalam API dan Pustaka: Untuk pengguna perpustakaan atau API, pembina menyediakan cara mudah untuk mencipta objek dengan persediaan yang minimum. Ini meningkatkan pengalaman pengguna, kerana mereka tidak perlu melakukan konfigurasi yang rumit selepas mencipta objek.
Kesimpulan
Pembina memainkan peranan penting dalam Java, menyediakan mekanisme yang teguh untuk pemulaan dan persediaan objek. Mereka memastikan bahawa objek dicipta dalam keadaan yang sah, menyokong pemulaan fleksibel melalui lebihan beban, dan menggalakkan kebolehgunaan semula kod dengan rantaian dan enkapsulasi logik. Dengan memanggil pembina induk semasa melanjutkan kelas, Java mengekalkan pendekatan berstruktur untuk warisan, mengukuhkan integriti objek dan kebolehbacaan.
Atas ialah kandungan terperinci Pembina di java. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!