Pelajaran utama daripada artikel ini
- Apakah itu pembina tanpa hujah lalai?
- Bagaimanakah pembina tanpa hujah lalai digunakan?
- Bagaimana untuk memanggil pembina?
- Kelebihan menggunakan pembina.
Lima peraturan pembina
- Pernyataan pertama pembina ialah panggilan kepada pembina lain menggunakan this() atau panggilan kepada pembina dalam induk langsung menggunakan super().
- Super() tidak boleh digunakan selepas pernyataan pertama pembina.
- Jika tiada panggilan super diisytiharkan dalam pembina, Java akan memasukkan super tanpa hujah sebagai pernyataan pertama pembina.
- Jika ibu bapa tidak mentakrifkan pembina tanpa hujah dan kanak-kanak itu tidak menentukan mana-mana pembina, pengkompil akan membuang ralat dan cuba memasukkan pembina tanpa hujah lalai.
Apakah itu pembina dalam Java?
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().
Cara memanggil pembina
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`.
Kelebihan menggunakan pembina
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!

Alat AI Hot

Undress AI Tool
Gambar buka pakaian secara percuma

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas









Java menggunakan kelas pembalut kerana jenis data asas tidak dapat mengambil bahagian secara langsung dalam operasi berorientasikan objek, dan bentuk objek sering diperlukan dalam keperluan sebenar; 1. Kelas koleksi hanya boleh menyimpan objek, seperti senarai menggunakan tinju automatik untuk menyimpan nilai berangka; 2. Generik tidak menyokong jenis asas, dan kelas pembungkusan mesti digunakan sebagai parameter jenis; 3. Kelas pembungkusan boleh mewakili nilai null untuk membezakan data yang tidak tersendiri atau hilang; 4. Kelas pembungkusan menyediakan kaedah praktikal seperti penukaran rentetan untuk memudahkan parsing dan pemprosesan data, jadi dalam senario di mana ciri -ciri ini diperlukan, kelas pembungkusan sangat diperlukan.

Perbezaan antara hashmap dan hashtable terutamanya dicerminkan dalam keselamatan benang, sokongan nilai null dan prestasi. 1. Dari segi keselamatan benang, hashtable adalah benang selamat, dan kaedahnya kebanyakannya kaedah segerak, sementara hashmap tidak melakukan pemprosesan penyegerakan, yang bukan benang-selamat; 2. Dari segi sokongan nilai null, hashmap membolehkan satu kunci null dan nilai null berbilang, manakala hashtable tidak membenarkan kekunci atau nilai null, jika tidak, nullPointerException akan dibuang; 3. Dari segi prestasi, hashmap lebih cekap kerana tidak ada mekanisme penyegerakan, dan Hashtable mempunyai prestasi penguncian yang rendah untuk setiap operasi. Adalah disyorkan untuk menggunakan ConcurrentHashMap sebaliknya.

Penyusun JIT mengoptimumkan kod melalui empat kaedah: kaedah dalam talian, pengesanan tempat panas dan penyusunan, spekulasi jenis dan devirtualisasi, dan penghapusan operasi yang berlebihan. 1. Kaedah sebaris mengurangkan panggilan overhead dan memasukkan kaedah kecil yang sering dipanggil terus ke dalam panggilan; 2. Pengesanan tempat panas dan pelaksanaan kod frekuensi tinggi dan mengoptimumkannya untuk menjimatkan sumber; 3. Jenis spekulasi mengumpul maklumat jenis runtime untuk mencapai panggilan devirtualisasi, meningkatkan kecekapan; 4. Operasi berlebihan menghapuskan pengiraan dan pemeriksaan yang tidak berguna berdasarkan penghapusan data operasi, meningkatkan prestasi.

Staticmethodsininterfaceswereintroducedinjava8toallowutilityfunctionswithintheintheinterfaceitself.beforjava8, SuchfunctionsRequiredseparateHelpereHelperes, LeadingTodisorgaganizedCode.Now, staticmethodethreeKeybeeMeKeBeReSes, staticmethodeDethreeKeybeeMeKeBeReSes, staticmethodethreeKeybeeMeKeKeBeReSes, staticmethodeDethreeKeybeeMeKeKeBeReKeNey

Blok permulaan contoh digunakan dalam Java untuk menjalankan logik inisialisasi apabila membuat objek, yang dilaksanakan sebelum pembina. Ia sesuai untuk senario di mana beberapa pembina berkongsi kod inisialisasi, permulaan medan kompleks, atau senario permulaan kelas tanpa nama. Tidak seperti blok inisialisasi statik, ia dilaksanakan setiap kali ia ditegaskan, manakala blok permulaan statik hanya dijalankan sekali apabila kelas dimuatkan.

Injava, thefinalkeywordpreventsavariable'svaluefrombeingchangedafterassignment, butitsbehaviordiffersforprimitivesandobjectreferences.forprimitiveVariables, finalmakesthevalueconstant, asinfinalintmax_speed = 100;

Terdapat dua jenis penukaran: tersirat dan eksplisit. 1. Penukaran tersirat berlaku secara automatik, seperti menukar int untuk berganda; 2. Penukaran eksplisit memerlukan operasi manual, seperti menggunakan (int) mydouble. Kes di mana penukaran jenis diperlukan termasuk memproses input pengguna, operasi matematik, atau lulus pelbagai jenis nilai antara fungsi. Isu-isu yang perlu diperhatikan adalah: Mengubah nombor terapung ke dalam bilangan bulat akan memotong bahagian pecahan, mengubah jenis besar menjadi jenis kecil boleh menyebabkan kehilangan data, dan beberapa bahasa tidak membenarkan penukaran langsung jenis tertentu. Pemahaman yang betul tentang peraturan penukaran bahasa membantu mengelakkan kesilapan.

Mod kilang digunakan untuk merangkum logik penciptaan objek, menjadikan kod lebih fleksibel, mudah dikekalkan, dan ditambah longgar. Jawapan teras adalah: dengan mengurus logik penciptaan objek secara berpusat, menyembunyikan butiran pelaksanaan, dan menyokong penciptaan pelbagai objek yang berkaitan. Keterangan khusus adalah seperti berikut: Mod Kilang menyerahkan penciptaan objek ke kelas kilang khas atau kaedah untuk diproses, mengelakkan penggunaan Newclass () secara langsung; Ia sesuai untuk senario di mana pelbagai jenis objek yang berkaitan dicipta, logik penciptaan boleh berubah, dan butiran pelaksanaan perlu disembunyikan; Sebagai contoh, dalam pemproses pembayaran, jalur, paypal dan contoh lain dicipta melalui kilang -kilang; Pelaksanaannya termasuk objek yang dikembalikan oleh kelas kilang berdasarkan parameter input, dan semua objek menyedari antara muka yang sama; Varian biasa termasuk kilang -kilang mudah, kaedah kilang dan kilang abstrak, yang sesuai untuk kerumitan yang berbeza.
