Apa itu Pembangun di Java dan Bagaimana Anda Menggunakannya?

Apa itu Pembangun di Java dan Bagaimana Anda Menggunakannya?

Dalam pengaturcaraan berorientasikan objek, konstruktor adalah fungsi khas yang anda panggil untuk membuat objek. Pembina mempunyai beberapa ciri unik yang membolehkannya berfungsi.





Di Jawa, anda menamakan konstruktor mengikut kelasnya. Pembina adalah kaedah, yang ditentukan dalam kelas yang digunakannya. Pembina Java mungkin menggunakan kelebihan beban untuk memberikan tingkah laku alternatif. Pembina di Java juga dapat memanfaatkan warisan untuk menggunakan kembali kod.





Mengapa Anda Perlu Pembina?

Pembina adalah pengaturcaraan berorientasi objek, dan Java tidak terkecuali. Contoh ini menunjukkan bagaimana anda dapat menentukan kelas Lingkaran asas dengan satu sifat data dan satu kaedah:





public class Circle {
public double radius;
public double area() { return 3.14159 * radius * radius; }
}

Anda kemudian boleh membuat contoh kelas ini dan berinteraksi dengannya:

Circle c = new Circle();
c.radius = 2;
System.out.println(c.area()); // 12.56636

Tetapi ini kurang senang dan mantap daripada yang mungkin. Amalan berorientasikan objek yang baik untuk merangkum data, melindunginya dari akses yang tidak dibenarkan:



public class Circle {
private double radius;
public double area() { return 3.14159 * radius * radius; }
public void setRadius(double r) { radius = r; }
}

Sekarang kod panggilan boleh menggunakan setRadius kaedah dan tidak perlu risau tentang perincian pelaksanaannya:

permainan yang tidak memerlukan data
Circle c = new Circle();
c.setRadius(2);

Pembina menawarkan cara yang lebih baik untuk membekalkan data ke objek semasa anda membuatnya. Mereka sangat sering digunakan untuk inisialisasi sifat, seperti jejari di sini.





Contoh Pembina Ringkas

Pembina yang paling asas adalah yang tidak mempunyai hujah, tidak melakukan apa-apa:

public class Circle {
public Circle() {}
}

Lihat juga: Pelajari Cara Membuat Kelas di Java





Sekiranya anda tidak menentukan konstruktor, Java akan memberikan yang lalai yang berkelakuan dengan cara yang sama.

Perhatikan beberapa perkara:

  1. Nama pembina sepadan dengan nama kelas.
  2. Pembina ini menggunakan awam pengubah akses, jadi kod lain boleh memanggilnya.
  3. Pembina tidak termasuk jenis pengembalian. Tidak seperti kaedah lain, pembina tidak dapat mengembalikan nilai.

Pembina biasanya melakukan beberapa inisialisasi. Perhatikan bahawa kod di atas tidak memulakan nilai jejari. Dalam kes ini, bahasa akan menetapkannya secara automatik ke sifar. Kelas ini mengharapkan pengguna dapat menggunakan setRadius () . Untuk menggunakan lalai yang lebih berguna daripada 0, anda boleh menetapkannya dalam konstruktor:

public class Circle {
public Circle() { radius = 1; }
}

Lingkaran yang dibuat dengan kelas ini sekurang-kurangnya sekarang akan mempunyai kawasan sebenar! Pemanggil masih boleh menggunakan setRadius () untuk memberikan jejari selain 1. Tetapi konstruktornya lebih mesra:

public class Circle {
public Circle(double r) { radius = r; }
}

Sekarang anda boleh membuat bulatan dengan radius tertentu sejak lahir:

mengapa imessage tidak berfungsi pada mac
Circle c = new Circle(2);
System.out.println(c.area()); // 12.56636

Ini adalah penggunaan yang sangat biasa untuk pembina. Anda akan sering menggunakannya untuk menginisialisasi pemboleh ubah ke nilai parameter.

Beban Konstruktor

Anda boleh menentukan lebih daripada satu pembina dalam definisi kelas:

public Circle() { radius = 1; }
public Circle(double r) { radius = r; }

Ini memberikan kod panggilan pilihan bagaimana membina objek:

Circle c1 = new Circle(2);
Circle c2 = new Circle();
System.out.println(c1.area() + ', ' + c2.area()); // 12.56636, 3.14159

Dengan Lingkaran yang sedikit lebih rumit, anda dapat meneroka lebih banyak konstruktor yang menarik. Versi ini menyimpan kedudukannya:

public class Circle {
public double x, y, radius;
public Circle() { radius = r; }
public Circle(double r) { radius = r; }
public Circle(double x, double y, double r) {
this.x = x; this.y = y; radius = r;
}

public double area() { return 3.14159 * radius * radius; }
}

Anda kini boleh membuat Lingkaran tanpa argumen, satu jejari, atau koordinat x dan y di sepanjang jejari. Ini adalah jenis beban yang sama yang disokong oleh Java untuk kaedah apa pun.

Rantai Pembina

Bagaimana dengan membuat satu Lingkaran, berdasarkan yang lain? Ini akan memberi kita keupayaan untuk menyalin Lingkaran dengan mudah. Perhatikan blok berikut:

public Circle(Circle c) {
this.x = c.x;
this.y = c.y;
this.radius = c.radius;
}

Ini akan berfungsi, tetapi mengulangi beberapa kod yang tidak perlu. Oleh kerana kelas Circle sudah mempunyai konstruktor yang menangani sifat individu, anda boleh memanggilnya menggunakan ini kata kunci:

public Circle(Circle c) {
this(c.x, c.y, c.radius);
}

Ini adalah salah satu bentuk rantai konstruktor, memanggil satu pembina dari yang lain. Ia kurang menggunakan kod dan membantu memusatkan operasi daripada menggandakannya.

Memanggil Pembina Ibu Bapa

Bentuk rantai konstruktor yang lain berlaku apabila konstruktor memanggil konstruktor kelas induknya. Ini boleh menjadi jelas atau tersirat. Untuk memanggil pembina induk secara eksplisit, gunakan super kata kunci:

super(x, y);

Bayangkan kelas Shape bertindak sebagai ibu bapa Lingkaran:

public class Shape {
double x, y;
public Shape(double _x, double _y) { x = _x; y = _y; }
}

Ini menangani kedudukan biasa untuk semua bentuk kerana ini adalah fungsi yang mereka semua berkongsi. Sekarang kelas Lingkaran dapat mendelegasikan pengendalian kedudukan kepada induknya:

public class Circle extends Shape {
double radius;
public Circle(double r) { super(0, 0); radius = r; }
public Circle(double x, double y, double r) {
super(x, y);
radius = r;
}
}

Pembinaan superclass adalah aspek yang sangat penting pewarisan di Jawa . Bahasa itu menerapkannya secara lalai jika anda tidak memanggil secara eksplisit super dalam pembina anda.

Akses Pengubah pada Pembina

Pembina boleh memasukkan pengubah akses dalam tandatangan mereka. Seperti kaedah lain, ini menentukan jenis pemanggil yang boleh mengakses konstruktor:

public class Test {
private static Test uniqueInstance = new Test();
private Test() { }
public static Test getInstance() {
return uniqueInstance;
}
}

Ini adalah contoh yang lebih rumit, jadi berhati-hatilah untuk memahaminya:

  • Kelasnya tidak abstrak, oleh itu adalah mungkin untuk mewujudkannya.
  • Pembina adalah peribadi sehingga hanya kelas ini yang dapat membuat contoh baru.
  • Melalui harta dan kaedah yang statik, kelas memperlihatkan satu contoh unik dan unik kepada pemanggil.

Gunakan Konstruktor di Java untuk Membuat Objek

Pembina sangat penting untuk pengaturcaraan berorientasikan objek. Mereka membolehkan anda membuat objek, yang penting!

Di Jawa, konstruktor kelihatan seperti kaedah lain dan berfungsi dengan cara yang hampir sama. Anda harus ingat peraturan khas mengenai konstruktor lalai, kelebihan beban, dan rantai konstruktor. Sekiranya pembina baru untuk anda, anda mungkin ingin membaca konsep inti Java yang lain yang harus anda pelajari semasa memulakan.

Berkongsi Berkongsi Tweet E-mel 10 Konsep Java Teras yang Perlu Anda Pelajari Semasa Bermula

Sama ada anda menulis GUI, mengembangkan perisian sisi pelayan, atau aplikasi mudah alih menggunakan Android, belajar Java akan melayani anda dengan baik. Berikut adalah beberapa konsep asas Java untuk membantu anda memulakan.

Baca Seterusnya
Topik-topik yang berkaitan
  • Pengaturcaraan
  • Jawa
  • Petua Pengekodan
Mengenai Pengarang Bobby Jack(58 Artikel Diterbitkan)

Bobby adalah peminat teknologi yang bekerja sebagai pembangun perisian selama hampir dua dekad. Dia meminati permainan, bekerja sebagai Editor Ulasan di Switch Player Magazine, dan terlibat dalam semua aspek penerbitan dalam talian & pembangunan web.

cara memuat turun permainan flash
Lagi Dari Bobby Jack

Langgan buletin kami

Sertailah buletin kami untuk mendapatkan petua, ulasan, ebook percuma, dan tawaran eksklusif!

Klik di sini untuk melanggan