Rumah >Java >javaTutorial >Rujukan pembina

Rujukan pembina

Linda Hamilton
Linda Hamiltonasal
2025-01-14 10:08:43680semak imbas

Referências de construtor

  • Merujuk pembina menggunakan sintaks: classname::new.

  • Boleh diberikan kepada antara muka berfungsi yang mempunyai kaedah serasi pembina.

Contoh dengan Pembina Berparameter

  • Jika antara muka berfungsi mempunyai kaedah dengan satu parameter, rujukan akan dikaitkan dengan pembina dengan parameter tersebut.

MyFunc myClassCons = MyClass::new;
MyClass mc = myClassCons.func("Ujian");

  • Di sini, MyClass(String s) ialah pembina yang dirujuk.

Contoh dengan Pembina Lalai

  • Untuk merujuk pembina tanpa parameter, anda mesti menggunakan antara muka berfungsi yang kaedahnya juga tidak mempunyai parameter.

MyFunc2 myClassCons = MyClass::new;
MyClass mc = myClassCons.func();

Gunakan dengan Kelas Generik

  • Untuk kelas generik, anda boleh menentukan jenis semasa membuat rujukan.

MyGenClass::new;

  • Terima kasih kepada menaip inferens, spesifikasi tidak selalu wajib.

Taip Inferens

  • Rujukan kepada pembina secara automatik memilih yang paling sesuai dengan kaedah antara muka berfungsi.

// Menunjukkan rujukan pembina.
// MyFunc ialah antara muka berfungsi yang kaedahnya mengembalikan
// rujukan MyClass.
Antara muka MyFunc {
MyClass func(String s);
}
kelas MyClass {
String peribadi str;
// Pembina ini mengambil satu hujah.
MyClass(String s) { str = s; }
// Ini ialah pembina lalai.
MyClass() { str = ""; }
// ...
String getStr() { return str; }
}
kelas ConstructorRefDemo {
utama lompang statik awam(String args[])
{
// Mencipta rujukan kepada pembina MyClass.
// Memandangkan kaedah func() MyFunc mengambil satu hujah,
// rujukan baharu pembina berparameter MyClass
// dan bukan pembina lalai.
MyFunc myClassCons = MyClass::new; Rujukan pembina
// Mencipta contoh MyClass menggunakan rujukan pembina ini.
MyClass mc = myClassCons.func("Ujian");
// Gunakan instance MyClass yang baru dibuat.
System.out.println("str dalam mc ialah " mc.getStr());
}
}

Atas ialah kandungan terperinci Rujukan pembina. 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