Rumah > Java > javaTutorial > Permulaan Pembolehubah Contoh dalam Java: Pengisytiharan lwn. Pembina – Mana Yang Lebih Baik?

Permulaan Pembolehubah Contoh dalam Java: Pengisytiharan lwn. Pembina – Mana Yang Lebih Baik?

Susan Sarandon
Lepaskan: 2024-12-05 18:40:14
asal
763 orang telah melayarinya

Instance Variable Initialization in Java: Declaration vs. Constructor – Which is Better?

Permulaan Pembolehubah Contoh: Pengisytiharan lwn. Pembina

Apabila memulakan pembolehubah contoh di Java, terdapat dua pendekatan biasa:

  1. Permulaan Pembolehubah Instance dihidupkan Pengisytiharan

    class A {
        B b = new B();
    }
    Salin selepas log masuk
  2. Permulaan Pembolehubah Instance dalam Pembina

    class A {
        B b;
    
        A() {
             b = new B();
        }
    }
    Salin selepas log masuk

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();
}
Salin selepas log masuk

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;
}
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan