Jika dalam suatu kelas terdapat 2 constructor dengan parameter yang berbeda disebut dengan

OVERLOADING

Overloading adalah pemakaian beberapa methods ataupun properties dengan nama yang sama, tetapi memiliki daftar parameter/argument yang berbeda. Perbedaan yang dimaksud adalah beda jumlah parameter, beda tipe data, atau beda keduanya (jumlah parameter dan tipe data). Methods ataupun properties yang hanya beda return value (nilai balik) tidak bisa dikatakan sebagai overloading.

Keyword yang dipakai adalah Overloads. Jika dalam satu class, keyword ini bersifat optional artinya kita tidak harus menambahkan keyword Overloads ketika mendefinisikan beberapa methods ataupun properties yang menerapkan konsep overloading. Apabila kita tetap ingin memakainya, maka keyword Overloads harus digunakan di semua methods ataupun properties tadi. Apabila beda class, keyword Overloads ini harus digunakan.

Method overloading digunakan untuk membuat beberapa fungsi (method) dengan nama yang SAMA dan mengerjakan tugas yang MIRIP. Tujuannya, agar programmer tidak kesulitan dalam mengingat sebuah fungsi yang tugasnya mirip. Misalnya untuk membuat fungsi perkalian. Ada perkalian yang membutuhkan dua argumen dan ada perkalian yang membutuhkan tiga argumen (tugasnya mirip, yaitu sama-sama mengalikan argumen, hanya jumlah argumen yang berbeda). Kalau dibuat fungsi dengan nama yang berbeda, kemungkinan programmer akan repot. Contoh, untuk fungsi perkalian dengan dua argumen, namanya adalah kali1(bil1, bil2). Sedangkan untuk perkalian dengan tiga argumen namanya adalah kali2(bil1, bil2, bil3). Repot kan? Gimana kalo ada sepuluh perkalian? Bandingkan bila namanya kali(bil1, bil2) dan kali(bil1, bil2, bil3). Kita cuma perlu mengingat jumlah argumen dari fungsi kali.

So, gimana cara compiler C++ membedakan method tersebut, padahal namanya sama? Compiler C++ memilih fungsi dengan mengamati jumlah, tipe data dan urutan argumen. Nah, dari sini jelas bahwa compiler menggunakan daftar parameter untuk membedakan fungsi dengan nama yang sama. Bukan membedakan dengan return type-nya (nilai balik).

Sehingga, untuk membuat method overloading diperlukan setidaknya satu dari tiga syarat di bawah ini:

  • mempunyai jumlah argumen berbeda.
  • mempunyai tipe data argumen yang berbeda.
  • mempunyai urutan argumen yang berbeda.

Contoh #1 (jumlah argumen berbeda):

// method kali dengan dua argumen (bil1 dan bil2) int kali(int bil1, int bil2) { return bil1*bil2

}

// method kali dengan tiga argumen (bil1, bil2 dan bil3)
int kali(int bil1, int bil2, int bil3) {

return bil1*bil2*bil3;
}

Method kali pada contoh di atas VALID karena mempunyai jumlah argumen yang berbeda.

Contoh #2 (mempunyai tipe data argumen yang berbeda):

// method tampilkanNilai mempunyai argumen bertipe char void tampilkanNilai(char nilai) { cout << “Nilai (dalam huruf): ” << nilai;

}

// method tampilkanNilai mempunyai argumen bertipe int void tampilkanNilai(int nilai) { cout << “Nilai (dalam angka): ” << nilai;

}

Contoh method tampilkanNilai diatas VALID karena mempunyai tipe data argumen yang berbeda walaupun memiliki jumlah argumen yang sama.

Contoh #3 (urutan argumen berbeda):

// method kali dengan tipe data bil1 adalah int // dan bil2 adalah double double kali(int bil1, double bil2) { return bil1*bil2;

}

// method kali dengan tipe data bil1 adalah double // dan bil2 adalah int double kali(double bil1, int bil2) { return bil1*bil2;

}

Method kali di atas VALID karena urutan argumen berbeda. Pada method kali yang pertama bil1 bertipe data int kemudian diikuti oleh bil2 dengan tipe data double. Sedangkan pada method kali yang kedua, bil1 bertipe data double diikuti oleh bil2 yang bertipe data int.

PERLU DIINGAT!!!
Seringnya programmer melakukan kesalahan ketika membuat method overloading adalah dengan membuat daftar parameter yang sama dengan return type (nilai balik) yang berbeda. Hal ini menghasilkan SYNTAX ERROR.

Contoh yang salah:

// return type: int int hitungUmur(int umur) { return umur + 2;

}

// return type: void void hitungUmur(int umur) { cout<<”umur siswa setelah lulus kuliah= “<<umur+2;

}

SYNTAX ERROR. Method tidak dapat di-overload karena mempunyai jumlah argumen yang sama dengan tipe data yang sama.

CONSTRUCTOR

Constructor adalah bagian dari kelas yang otomatis di panggil saat kelas diperkenalkan – atau dibuat, cara memperkenalkan constructor gampang , namanya disamakan dengan class, misal – nama class ryo maka constructor nya berrnama ryo, kalau nama kelas paimo maka – constructor bernama paimo. // kalau memakai IDE geany tekan F9 lalu F5 #include <iostream> using namespace std; class matematika { public : matematika () ; //ini constructor void paiman ();

} ; // jangan lupa semicolon (;)

matematika :: matematika() { cout << “saya yang bernama constructor “<<endl; } void matematika :: paiman () { cout<< “kalau saya sih cuman anggota yang bernama paiman ” <<endl;

}

int main () { matematika mtk ; //memperkenalkan class matematika dengan nama mtk mtk.paiman (); //bila ini dimatikan maka yang keluar hanya constructor

}

Java Constructors merupakan blok kode yang serupa dengan metode. Constructor atau disebut juga konstruktor akan dipanggil ketika sebuah instance dari kelas dibuat. Pada saat memanggil Constructor, memori untuk objek dialokasikan dalam memori. Constructor adalah jenis metode atau cara khusus yang dipakai dalam menginisialisasi objek.

Setiap kali sebuah objek dibuat menggunakan kata kunci new(), setidaknya satu konstruktor dipanggil. Konstruktor ini memanggil konstruktor default jika tidak ada konstruktor yang tersedia di kelas. Dalam kasus seperti itu, kompiler Java menyediakan konstruktor default secara default.

Seri tutorial Java kali ini akan membahas tentang Java Constructor. Kalau Anda ingin tahu lebih detil tentang Constructor, simak artikel Codekey berikut ini sampai akhir.

Definisi Java Constructors

Jika dalam suatu kelas terdapat 2 constructor dengan parameter yang berbeda disebut dengan

Berikut adalah contoh deklarasi Java Constructors sederhana. Contoh berikut ini menunjukkan kelas Java yang sangat sederhana dengan konstruktor tunggal.

public class ContohClass { public ContohClass() { } }

Konstruktor ada pada bagian ini:

public ContohClass() { }

Bagian pertama dari deklarasi konstruktor Java adalah access changer atau pengubah akses. Pengubah akses memiliki arti yang sama dengan metode dan bidang. Mereka menentukan kelas apa yang dapat mengakses (memanggil) konstruktor. Pengubah akses dibahas lebih detail dalam tutorial pengubah akses Java saya.

Bagian kedua dari deklarasi Java Constructor adalah nama kelas yang dimiliki konstruktor. Menggunakan nama kelas untuk konstruktor memberi sinyal kepada kompiler Java bahwa ini adalah konstruktor. Perhatikan juga bahwa konstruktor tidak memiliki tipe pengembalian, seperti yang dimiliki metode lain.

Bagian ketiga yang berada pada deklarasi Java Constructor merupakan list parameter yang bisa diambil oleh constructor. Parameter konstruktor berada dalam tanda kurung () agar dapat dideklarasikan setelah bagian nama kelas dari Java Constructor. Dalam contoh deklarasi konstruktor di atas tidak ada parameter yang dideklarasikan. Saya akan menunjukkan contoh deklarasi konstruktor Java dengan parameter nanti dalam teks ini.

Bagian keempat yang ada pada deklarasi konstruktor Java adalah body constructor. Body constructor ini harus terdefinisi di dalam kurung kurawal {} setelah list parameter. Dalam contoh konstruktor di atas konstruktor tidak memiliki operasi di dalam badan konstruktor. Dikatakan sebagai konstruktor “empty”.

Ada dua jenis konstruktor di Java: konstrukt tanpa argument atau default constructor, dan konstruktor berparameter. Mereka disebut konstruktor karena membangun nilai pada saat pembuatan objek. Tidak perlu menulis konstruktor untuk kelas. Itu karena kompiler Java membuat konstruktor default jika kelas Anda tidak memilikinya.

Ada dua aturan yang didefinisikan untuk konstruktor pada Java:

  • Nama konstruktor wajib sama dengan class name atau nama kelasnya.
  • Konstruktor tidak boleh memiliki excplicit return type (tipe pengembalian yang eksplisit)
  • Konstruktor Java tidak bisa abstrak, statis, final, dan disinkronkan

Jenis Constructors pada Java

Ada dua jenis konstruktor di Java. Jenis konstruktor akan dijelaskan selengkapnya pada berikut ini.

1. Default Constructor (konstruktor tanpa argumen)

Konstruktor disebut Default Constructor ketika tidak memiliki parameter apa pun. Berikut ini adalah contoh syntax default constructor untuk membuat constructor pada Java.

1. <nama_kelas>(){ 2. 3. } Contoh Default Constructor: 1. class Pesan { 2. Pesan() { 3. System.out.println("Selamat Belajar Java"); 4. } 5. 6. public static void main(String args[]){ 7. Pesan p=new Pesan(); 8. } 9. }

Hasil:

Selamat Belajar Java

Dalam contoh ini, kita membuat konstruktor tanpa argument di kelas Pesan. Konstruktor tanpa argument atau populer dikenal dengan default constructor akan dipanggil ketika pembuatan objek berlangsung.

Artikel Terkait  Tutorial Java 6 : Cara Menggunakan Function di Java

1. class Pegawai { 2. int id; 3. String nama; 4. 5. void view() { 6. System.out.println(id+" "+nama); 7. } 8. 9. public static void main(String args[]) { 10. Pegawai p1=new Pegawai(); 11. Pegawai p2=new Pegawai(); 12. 13. p1.view(); 14. p2.view(); 15. } 16. } Hasil: 0 null 0 null

Pada kelas di atas, Anda tidak membuat konstruktor lain oleh karena itu compiler menyediakan Anda default constructor. Di sini, 0 dan null adalah nilai yang disediakan oleh default constructor.

2. Parameterized Constructor

Parameterized Constructor atau konstruktor yang memiliki sejumlah parameter tertentu disebut konstruktor berparameter. Mengapa menggunakan konstruktor berparameter? Konstruktor parameter digunakan untuk memberikan nilai yang berbeda untuk objek yang berbeda. Namun, Anda juga dapat memberikan nilai yang sama.

Berikut ini adalah contoh konstruktor berparameter. Dalam contoh ini, Codekey  membuat konstruktor kelas Siswa yang memiliki dua parameter. Umumnya, saat bekerja dengan Java dapat memiliki sejumlah parameter dalam konstruktor.

1. class Pegawai { 2. int id; 3. String nama; 4. 5. Pegawai(int x, String y) { 6. id = x; 7. nama = y; 8. } 9. void view() { 10. System.out.println(id+" "+nama); 11. } 12. 13. public static void main(String args[]) { 14. Pegawai p1 = new Pegawai(37,"Andi"); 15. Pegawai p2 = new Pegawai(38,"Budi"); 16. 17. p1.view(); 18. p2.view(); 19. } 20. } Output: 37 Andi 38 Budi

Constructor Overloading di Java

Pada Java,  konstruktor sama seperti metode tetapi tanpa tipe pengembalian. Itu juga bisa kelebihan beban seperti metode Java. Overloading konstruktor di Java adalah teknik memiliki lebih dari satu konstruktor dengan daftar parameter yang berbeda. Mereka diatur sedemikian rupa sehingga setiap konstruktor melakukan tugas yang berbeda. Mereka dibedakan oleh kompiler dengan jumlah parameter dalam daftar dan tipenya.

Contoh Overloading Konstruktor

1. class Pegawai{ 2. int id; 3. String nama; 4. String hobi; 5. 6. Pegawai(int x, String y){ 7. id = x; 8. nama = y; 9. } 10. 11. Pegawai(int x, String y, String z){ 12. id = x; 13. nama = y; 14. hobi = z; 15. } 16. void view() { 17. System.out.println(id+" "+nama+" "+hobi); 18. } 19. 20. public static void main(String args[]){ 21. Pegawai p1 = new Pegawai(37, "Andi", "Membaca"); 22. Pegawai p2 = new Pegawai(38, "Budi", "Berenang"); 23. p1.view(); 24. p2.view(); 25. } 26. } Hasil: 37 Andi Membaca 38 Budi Berenang

Perbedaan antara konstruktor dan metode di Java

Ada banyak perbedaan antara konstruktor dan metode. Berikut ini adalah penjelasannya.

  1. Konstruktor digunakan untuk menginisialisasi keadaan suatu objek. Sementara, sebuah metode digunakan untuk mengekspos perilaku suatu objek.
  2. Konstruktor tidak boleh memiliki return type atau tipe pengembalian. Sementara, sebuah metode harus memiliki return type.
  3. Konstruktor dipanggil atau dijalankan secara implisit. Sementara, metode ini dipanggil atau dijalankan secara eksplisit.
  4. Kompiler Java menyediakan konstruktor default jika Anda tidak memiliki konstruktor di kelas. Sedangkan, metode ini tidak disediakan oleh kompiler dalam hal apa pun.
  5. Nama konstruktor harus sama dengan nama kelas. Sedangkan, nama metode mungkin atau mungkin tidak sama dengan nama kelas.

Java Copy Constructor

Tidak ada copy constructor di Java. Namun, kita dapat menyalin nilai dari satu objek ke objek lain seperti menyalin konstruktor di C++. Menyalin nilai dari satu objek ke objek lain di Java memiliki banyak cata. Adapun cara-cara tersebut adalah:

  • Menggunakan konstruktor
  • Dengan menetapkan value/nilai dari satu objek ke objek lain
  • Dengan metode clone() dari kelas Object

Dalam contoh ini, kita akan menyalin nilai dari satu objek ke objek lain menggunakan konstruktor Java.

1. class Pegawai{ 2. int id; 3. String nama; 4. 5. Pegawai(int x, String y) { 6. id = x; 7. nama = y; 8. } 9. 10. Pegawai(Pegawai p) { 11. id = p.id; 12. nama =p.nama; 13. } 14. void view() { 15. System.out.println(id+" "+nama); 16. } 17. 18. public static void main(String args[]){ 19. Pegawai p1 = new Pegawai(31, "Gumi"); 20. Pegawai p2 = new Pegawai(p1); 21. 22. p1.view(); 23. p2.view(); 24. } 25. } Hasil: 31 Gumi 31 Gumi

Artikel Terkait  Tutorial Java 19 : Cara Mengonversi String To Int Java

Menyalin Nilai tanpa Constructor

Kita dapat menyalin nilai dari satu objek ke objek lain dengan menetapkan nilai objek ke objek lain. Dalam hal ini, tidak perlu membuat constructor pada Java:

1. class Pegawai{ 2. int id; 3. String nama; 4. 5. Pegawai(int x, String y){ 6. id = x; 7. nama = y; 8. } 9. 10. Pegawai() { 11. } 12. 13. void view() { 14. System.out.println(id+" "+nama); 15. } 16. 17. public static void main(String args[]){ 18. Pegawai p1 = new Pegawai(31, "Gumi"); 19. Pegawai p2 = new Pegawai(); 20. p2.id=p1.id; 21. p2.nama=p1.nama; 22. 23. p1.view(); 24. p2.view(); 25. } 26. } Hasil: 31 Gumi 31 Gumi

Demikianlah penjelasan tentang Java Constructors. Tersedia Constructor Class pada Bahasa Pemrograman Java. Class ini bisa dipakai untuk memperoleh informasi internal dari konstruktor di kelas. Konstruktor ini dapat ditemukan dalam paket java.lang.reflect.

Jika Anda tertarik untuk belajar Java secara lebih mendalam, jangan lupa mengunjungi seri tutorial Java di https://codekey.id. Codekey merupakan media untuk para pemula mempelajari tentang pemrograman. Codekey menyediakan banyak materi dan tutorial seputar bahasa pemrograman yang terkenal seperti Dart maupun Python. Jangan sampai ketinggalan update terbaru dari Codekey!

Jasa Pembuatan Aplikasi, Website dan Internet Marketing | PT APPKEY
PT APPKEY adalah perusahaan IT yang khusus membuat aplikasi Android, iOS dan mengembangkan sistem website. Kami juga memiliki pengetahuan dan wawasan dalam menjalankan pemasaran online sehingga diharapkan dapat membantu menyelesaikan permasalahan Anda.

Jika dalam suatu kelas terdapat 2 constructor dengan parameter yang berbeda disebut dengan

Jika dalam suatu kelas terdapat 2 constructor dengan parameter yang berbeda disebut dengan

Jika dalam suatu kelas terdapat 2 constructor dengan parameter yang berbeda disebut dengan

Jika dalam suatu kelas terdapat 2 constructor dengan parameter yang berbeda disebut dengan