Rumah >tutorial komputer >pengetahuan komputer >Mengapa kelas Objek memerlukan pembina parameter nol di Jawa?
Kelas lain tidak perlu mentakrifkan pembina tanpa parameter secara eksplisit kerana mereka mewarisi kelas Objek dan dengan itu mewarisi kaedah pembina Objek.
Objek ialah kelas induk bagi semua kelas, ia tidak mempunyai kelas lain yang mewarisinya, jadi ia mesti mempunyai pembina tanpa hujah untuk instantiasi.
Java ialah bahasa pengaturcaraan berorientasikan objek merentas platform dengan fleksibiliti, kecekapan, mudah alih platform dan keselamatan yang sangat baik. Ia digunakan secara meluas dalam PC, pusat data, konsol permainan, superkomputer saintifik, telefon mudah alih dan Internet. Pada masa yang sama, Java mempunyai komuniti pembangun profesional terbesar di dunia, menyediakan asas yang kukuh untuk pembangunan dan inovasi selanjutnya.
Objek sering digunakan untuk meniru beberapa objek di sekeliling kita di dunia nyata.
Objek perisian ialah model objek dunia sebenar yang mempunyai keadaan dan tingkah laku. Keadaan dikekalkan melalui pembolehubah, yang dinamakan oleh pengecam pengguna. Kaedah ialah fungsi yang dikaitkan dengan objek yang melakukan tingkah laku objek. Oleh itu, objek perisian ialah model yang mengekalkan keadaan melalui pembolehubah dan melakukan tingkah laku melalui kaedah.
Objek adalah kunci untuk memahami teknologi berorientasikan objek. Sebelum belajar, anda boleh memerhati objek sebenar seperti anjing, meja, TV, basikal, dsb. Objek ini mempunyai dua ciri yang sama: keadaan dan tingkah laku. Contohnya, anjing mempunyai keadaan mereka sendiri (seperti nama, warna, kesuburan, kelaparan, dll.) dan tingkah laku (seperti mengibaskan ekor). Begitu juga, basikal mempunyai keadaan (seperti gear semasa, roda, dsb.) dan tingkah laku (seperti membrek, memecut, memecut dan menukar gear). Dengan memerhati objek ini, kita boleh memahami teknologi berorientasikan objek dengan lebih baik.
Instasiasi objek dan permulaan data biasanya dilakukan melalui pembina. Di Java, semua kelas mewarisi daripada kelas Objek, jadi pembina parameter kosong kelas Objek diwarisi secara lalai. Ini bermakna walaupun anda tidak menulis pembina null, ia masih wujud. Walau bagaimanapun, pembina berparameter biasanya ditulis oleh pembangun sendiri. Pembina berparameter berfungsi sama dengan pembina parameter kosong, tetapi ia boleh menerima parameter dan melakukan beberapa operasi pemulaan tertentu. Oleh itu, pembina berparameter membenarkan lebih fleksibiliti dalam memulakan data objek. Ringkasnya, pembina parameter kosong ialah pembina lalai yang diwarisi daripada kelas Objek, manakala pembina berparameter ditulis oleh pembangun sendiri dan boleh menerima parameter dan melaksanakan operasi pemulaan tertentu.
Izinkan saya memberi anda contoh untuk menggambarkan
Terdapat Monitor kelas yang mempunyai atribut ketinggian String;String
lebar
Pantau awam(){}
Pantau awam(Ketinggian rentetan, lebar rentetan){}
Kaedah pembina dengan satu parameter kosong dan satu dengan parameter
Dalam kaedah utama saya melakukan tindakan permulaan
Monitor monitor=New Monitor();
Struktur ini hanya mencipta objek paparan, dan sifatnya tidak mempunyai nilai Anda juga boleh menetapkan nilai secara manual padanya
Contohnya: monitor.height=100;
monitor.width=200;
Berbeza jika anda menggunakan yang ada ginseng, banyak lagi perkara yang perlu dibimbangkan
Monitor monitor2=Monitor baharu("100","200");
Di sini saya hanya perlu meletakkan parameter yang saya mahu masukkan terus untuk menetapkan nilai kepada atribut saya. Adakah ia menjimatkan banyak kerja?
Ini kelebihannya!
Jawapan selesai!
Pembina ialah kaedah khas yang digunakan terutamanya untuk memulakan objek semasa menciptanya, iaitu, memberikan nilai awal kepada pembolehubah ahli objek
Sentiasa digunakan bersama-sama dengan operator baharu dalam pernyataan yang mencipta objek Kelas khas boleh mempunyai berbilang pembina.
Perbezaan antara pembina dan kaedah lain1. Nama pembina mestilah betul-betul sama dengan nama kelas; manakala kaedah umum tidak boleh sama dengan nama kelas
2. Fungsi pembina digunakan terutamanya untuk mentakrifkan keadaan permulaan apabila objek kelas dicipta dan tidak boleh diubah suai dengan tidak sah mempunyai sebarang Pilih. Dan kaedah lain mempunyai nilai pulangan Walaupun ia adalah nilai pulangan yang kosong, walaupun badan kaedah itu sendiri tidak akan mengembalikan apa-apa secara automatik, anda masih boleh membiarkannya mengembalikan sesuatu, dan perkara ini mungkin tidak selamat.
3. Pembina tidak boleh dipanggil terus Ia mesti dipanggil secara automatik apabila objek dibuat melalui operator baharu
4. Apabila mentakrifkan kelas, pembina kelas biasanya akan dipaparkan, dan kerja permulaan boleh ditinggalkan dalam fungsi Pengkompil Java akan menyediakan pembina lalai ini Tanpa parameter mempunyai ciri iniRingkasnya, pembina digunakan untuk mencipta objek secara lebih profesional, ia dipanggil instantiasi objek.
Definisi:
kelas A
{
awam A(){}
}
Gunakan:
A a=new A(); //Di sini, A() ialah pembina.
Satu perkara yang perlu diambil perhatian ialah jika tiada pembina ditakrifkan dalam kelas, pengkompil akan menjana pembina kosong secara automatik dan setiap ahli kelas akan diberikan nilai lalai.
Tetapi jika hanya pembina persendirian ditakrifkan dalam kelas, maka kelas itu tidak akan dijadikan instantiated.
kelas A
{
rentetan a;
peribadi A() { }//Kelas ini tidak boleh dibuat instant
}
Jika kita mentakrifkan pembina dengan parameter tetapi bukan pembina tanpa parameter, maka parameter mesti disediakan semasa membuat instantiat objek kelas ini.
kelas A
{
rentetan a;
awam A(string str) {a=str; }
}
Anda tidak boleh membuat instantiat objek A a=baru A();
Pembina dibahagikan kepada pembina dinamik dan pembina statik.
Pembina dinamik memperuntukkan ruang ingatan untuk kelas atau struktur apabila ia dibuat seketika, dan melengkapkan permulaan pembolehubah ahli dalam kelas atau struktur. Pembina dinamik boleh terlebih beban, iaitu, nama pembina yang sama mempunyai berbilang pembina jenis dan nombor yang berbeza. Tiada perbezaan penting antara pembina dengan parameter dan pembina tanpa parameter Pembina dengan parameter boleh dikawal oleh pembolehubah yang diluluskan atau secara langsung memulakan pembolehubah ahli Dalam pembina, nilai lalai boleh dimulakan untuk pembolehubah ahli.
Pembina statik tidak dibenarkan membawa parameter, iaitu, hanya satu pembina statik dibenarkan dalam kelas. Ia dipanggil sebelum akses pertama kepada ahli statik atau instantiasi pertama objek dinamik kelas ini.
#include
#include
menggunakan ruang nama std;
#define MAXLENGTH 1000
kelas CString
{
char m_buff[MAXLENGTH];
awam:
CString(); //Pembina 1, tetapkan kepada rentetan kosong
~CString();
rakan ostream& operator
pengendali char[](int i)const;
};
CString::CString()
{
//m_buff[0]=NULL;
memset(m_buff,0,saiz m_buff); //Fungsi permulaan rentetan}
char CString::operator[](int i)const
{
kembali m_buff[i];
}
ostream& operator {
kembali Keluar }
CString::~CString()
{
//delete[] m_buff; Saudara, anda tidak boleh menggunakan padam tanpa yang baharu mesti diperuntukkan secara dinamik.
}
int main()//Umumnya tulis int
{
CString s1;
cout kembali 0; //Anda tidak perlu menulisnya
} Apa pun, tiada ralat dilaporkan Sama ada fungsi yang anda inginkan dapat direalisasikan, itu adalah perjalanan ke C++, jadi berjalan perlahan-lahan.
Apakah kaedah pembina dalam Java
1. Nama pembina mestilah betul-betul sama dengan nama kelas di mana ia ditakrifkan.
2 Kaedah pembina dipanggil menggunakan operasi baharu semasa mencipta objek. Fungsi pembina adalah untuk memulakan objek.
3. Tidak boleh diubah suai secara statik, muktamad, disegerakkan, abstrak dan asli. Pembina tidak boleh diwarisi oleh subkelas.
kelas RectConstructor{
dua kali ganda;
lebar berganda;
kawasan berganda(){
panjang*lebar balik;
}
// Kaedah berikut adalah kaedah pembinaan yang dipanggil Ia tidak mempunyai nilai pulangan dan nama kaedah adalah sama dengan nama kelas~~~
RectConstructor(lebar berganda, panjang berganda){//Kaedah Pembina dengan parameter
ini.panjang=panjang;
this.width=width;
}
}
Malah, kaedah pembinaan adalah untuk memberikan nilai awal kepada ahli kelas~~~~~~~~~~~~~~~
Atas ialah kandungan terperinci Mengapa kelas Objek memerlukan pembina parameter nol di Jawa?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!