Apa itu Konstruktor di Java dan Bagaimana Cara Menggunakannya?

Apa itu Konstruktor di Java dan Bagaimana Cara Menggunakannya?

Dalam pemrograman berorientasi objek, konstruktor adalah fungsi khusus yang Anda panggil untuk membuat objek. Konstruktor memiliki beberapa fitur unik yang memungkinkan mereka untuk bekerja.





Di Java, Anda memberi nama konstruktor setelah kelasnya. Konstruktor adalah sebuah metode, yang didefinisikan dalam kelas yang digunakannya. Konstruktor Java dapat menggunakan overloading untuk memberikan perilaku alternatif. Konstruktor di Java juga dapat menggunakan warisan untuk menggunakan kembali kode.





Mengapa Anda Membutuhkan Konstruktor?

Konstruktor adalah andalan pemrograman berorientasi objek, dan Java tidak terkecuali. Contoh ini menunjukkan bagaimana Anda dapat mendefinisikan kelas Lingkaran dasar dengan satu properti data dan satu metode:





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

Anda kemudian dapat membuat instance kelas ini dan berinteraksi dengannya:

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

Tapi ini kurang nyaman dan kuat dari yang seharusnya. Ini adalah praktik berorientasi objek yang baik untuk merangkum data, melindunginya dari akses yang tidak sah:



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

Sekarang kode panggilan dapat menggunakan setRadius metode dan tidak perlu khawatir tentang detail implementasinya:

emulator mac os untuk windows 10
Circle c = new Circle();
c.setRadius(2);

Konstruktor menawarkan cara yang lebih baik untuk memasok data ke objek saat Anda membuatnya. Mereka sangat sering digunakan untuk inisialisasi properti, seperti radius di sini.





Contoh Konstruktor Sederhana

Konstruktor paling dasar adalah konstruktor tanpa argumen, yang tidak melakukan apa pun:

public class Circle {
public Circle() {}
}

Lihat juga: Pelajari Cara Membuat Kelas di Java





Jika Anda tidak mendefinisikan konstruktor, Java akan menyediakan konstruktor default yang berperilaku dengan cara yang sama.

Perhatikan beberapa hal:

  1. Nama konstruktor cocok dengan nama kelas.
  2. Konstruktor ini menggunakan publik pengubah akses, sehingga kode lain dapat memanggilnya.
  3. Konstruktor tidak menyertakan tipe pengembalian. Tidak seperti metode lain, konstruktor tidak dapat mengembalikan nilai.

Konstruktor biasanya melakukan semacam inisialisasi. Perhatikan bahwa kode di atas tidak menginisialisasi nilai radius. Dalam hal ini, bahasa akan secara otomatis mengaturnya ke nol. Kelas ini mengharapkan pengguna untuk menggunakan setRadius() . Untuk menggunakan default yang lebih berguna daripada 0, Anda dapat menetapkannya di dalam konstruktor:

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

Lingkaran yang dibuat dengan kelas ini setidaknya sekarang memiliki luas yang sebenarnya! Penelepon masih dapat menggunakan setRadius() untuk memberikan radius selain 1. Tetapi konstruktor bisa lebih ramah:

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

Sekarang Anda dapat membuat lingkaran dengan radius tertentu sejak lahir:

bluetooth tidak berfungsi di iphone 5
Circle c = new Circle(2);
System.out.println(c.area()); // 12.56636

Ini adalah penggunaan yang sangat umum untuk konstruktor. Anda akan sering menggunakannya untuk menginisialisasi variabel ke nilai parameter.

Overload Konstruktor

Anda dapat menentukan lebih dari satu konstruktor dalam definisi kelas:

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

Ini memberikan kode panggilan pilihan tentang cara membuat 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 kompleks, Anda dapat menjelajahi konstruktor yang lebih menarik. Versi ini menyimpan posisinya:

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 sekarang dapat membuat Lingkaran tanpa argumen, radius tunggal, atau koordinat x dan y di sepanjang radius. Ini adalah jenis kelebihan beban yang sama yang didukung Java untuk metode apa pun.

Rantai Konstruktor

Bagaimana kalau membuat satu Lingkaran, berdasarkan yang lain? Ini akan memberi kita kemampuan 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 berhasil, tetapi mengulangi beberapa kode yang tidak perlu. Karena kelas Circle sudah memiliki konstruktor yang menangani properti individual, Anda dapat memanggilnya dengan menggunakan ini kata kunci:

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

Ini adalah salah satu bentuk rantai konstruktor, memanggil satu konstruktor dari yang lain. Ini menggunakan lebih sedikit kode dan membantu memusatkan operasi daripada menduplikasinya.

Memanggil Konstruktor Induk

Bentuk lain dari rantai konstruktor terjadi ketika konstruktor memanggil konstruktor dari kelas induknya. Ini bisa eksplisit atau implisit. Untuk memanggil konstruktor induk secara eksplisit, gunakan super kata kunci:

super(x, y);

Bayangkan kelas Bentuk bertindak sebagai induk dari Lingkaran:

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

Ini menangani pemosisian umum untuk semua bentuk karena ini adalah fungsi yang mereka semua bagikan. Sekarang kelas Circle dapat mendelegasikan penanganan posisi ke 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;
}
}

Konstruksi kelas super adalah aspek yang sangat penting dari warisan di jawa . Bahasa memberlakukannya secara default jika Anda tidak secara eksplisit memanggil super di konstruktor Anda.

Akses Pengubah di Konstruktor

Konstruktor dapat menyertakan pengubah akses dalam tanda tangan mereka. Seperti metode lain, ini menentukan tipe pemanggil mana yang dapat 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, jadi dimungkinkan untuk membuat instance darinya.
  • Konstruktor bersifat pribadi sehingga hanya kelas ini sendiri yang dapat membuat instance baru.
  • Melalui properti dan metode statis, kelas mengekspos satu contoh unik dari dirinya sendiri kepada pemanggil.

Gunakan Konstruktor di Java untuk Membuat Objek

Konstruktor sangat penting untuk pemrograman berorientasi objek. Mereka memungkinkan Anda untuk membuat objek, yang penting!

Di Jawa, konstruktor terlihat seperti metode lain dan bekerja dengan cara yang hampir sama. Anda harus mengingat aturan khusus seputar konstruktor default, kelebihan beban, dan rantai konstruktor. Jika konstruktor baru bagi Anda, Anda mungkin ingin membaca konsep inti Java lainnya yang harus Anda pelajari saat memulai.

Membagikan Membagikan Menciak Surel 10 Konsep Inti Java Yang Harus Anda Pelajari Saat Memulai

Baik Anda sedang menulis GUI, mengembangkan perangkat lunak sisi server, atau aplikasi seluler menggunakan Android, mempelajari Java akan membantu Anda dengan baik. Berikut adalah beberapa konsep inti Java untuk membantu Anda memulai.

Baca Selanjutnya
Topik-topik yang berkaitan
  • Pemrograman
  • Jawa
  • Kiat Pengkodean
Tentang Penulis Bobby Jack(58 Artikel Diterbitkan)

Bobby adalah penggemar teknologi yang bekerja sebagai pengembang perangkat lunak selama hampir dua dekade. Dia bersemangat tentang game, bekerja sebagai Editor Ulasan di Majalah Switch Player, dan mendalami semua aspek penerbitan online & pengembangan web.

linux terbaik untuk dijalankan dari usb
More From Bobby Jack

Berlangganan newsletter kami

Bergabunglah dengan buletin kami untuk kiat teknologi, ulasan, ebook gratis, dan penawaran eksklusif!

Klik di sini untuk berlangganan