Permulaan Pembolehubah Contoh: Pengisytiharan lwn. Pembina
Apabila memulakan pembolehubah contoh di Java, terdapat dua pendekatan biasa:
Permulaan Pembolehubah Instance dihidupkan Pengisytiharan
class A { B b = new B(); }
Permulaan Pembolehubah Instance dalam Pembina
class A { B b; A() { b = new B(); } }
Ada Ada Kelebihan kepada Sama ada Pendekatan?
Walaupun pengkompil Java memperlakukan kedua-dua pendekatan secara identik, pertimbangan tertentu harus dibuat:
Tertib Permulaan:
Kedua-dua pendekatan memulakan pembolehubah contoh dalam perintah mereka diisytiharkan dalam kod.
Kebolehbacaan:
Pendekatan pertama (permulaan pada pengisytiharan) biasanya dianggap lebih mudah dibaca.
Pengendalian Pengecualian:
Dalam pendekatan kedua (inisialisasi dalam pembina), pengendalian pengecualian adalah mungkin. Jika pemulaan melemparkan pengecualian, penciptaan objek akan gagal.
Blok Permulaan:
Selain pendekatan di atas, terdapat blok pemula, yang juga diletakkan dalam pembina oleh pengkompil.
{ a = new A(); }
Terbaik Amalan:
Secara amnya, adalah disyorkan untuk memulakan pembolehubah contoh pada pengisytiharan melainkan terdapat keperluan khusus untuk pengendalian pengecualian atau pengamulaan malas. Apabila bekerja dengan kebergantungan, adalah lebih baik untuk mengelak daripada menggunakan operator baharu secara terus dan sebaliknya memilih suntikan kebergantungan.
Contoh:
Jika anda mempunyai ExpensiveObject yang mahal untuk memulakan, anda boleh menggunakan pemula malas untuk meningkatkan prestasi:
ExpensiveObject o; public ExpensiveObject getExpensiveObject() { if (o == null) { o = new ExpensiveObject(); } return o; }
Atas ialah kandungan terperinci Permulaan Pembolehubah Contoh dalam Java: Pengisytiharan lwn. Pembina – Mana Yang Lebih Baik?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!