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
Susan Sarandonasal
2024-12-05 18:40:14784semak imbas

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();
    }
  2. 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!

Kenyataan:
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