Konstruktor
Setelah mengetahui alat untuk menciptakan objek, sekarang yang menjadi
pertanyaan adalah bagaimana cara menciptakan objek menggunakan sebuah
kelas. Jawabannya adalah dengan menggunakan sebuah konstruktor.
Apakah sebuah konstruktor itu? Konstruktor adalah bagian dari definisi
suatu kelas yang berfungsi menciptakan instans dari kelas tersebut.
Konstruktor ini bisa kita buat sendiri, atau bila kita tidak
mendefinisikannya, maka kompiler Java akan membuatkan konstruktor
default untuk kelas tersebut pada saat kompilasi. Yang perlu
diperhatikan adalah bahwa suatu konstrukor tidak termasuk anggota
suatu kelas seperti metode dan variabel dan bahwa konstruktor
bisa dibuat lebih dari satu.
Bentuk konstruktor sendiri mirip dengan sebuah metode. Beda yang paling
mencolok adalah nama sebuah konstruktor harus sama dengan nama kelas
tersebut dan konstruktor tidak memiliki definisi return type seperti
sebuah metode.
Hal-hal yang perlu diperhatikan dalam membuat sebuah konstruktor:
1. Konstruktor harus menggunakan nama yang sama dengan class.termasuk huruf besar dan kecilnya.
2. Dalam satu class bisa terdapat lebih dari satu konstruktor.
3. Konstruktor akan dieksekusi setiap kli ada pembuatan objek.
4. Setiap class harus mempunyai paling tidak sebuah konstruktor.
5. Jika sudah mendeklarasikan konstruktor, maka konstruktor default tidak akan dibuat oleh kompiler Java.
Sebuah class yang memiliki beberapa konstruktor digunakan untuk keperluan berikut:
1. Menentukan nilaiInstance variabel yang berbeda. Jadi,
pada setiap konstruktor diinisialisasi variabel yang berbeda.
2. Melakukan tugas awal dengan menjalankan metode tertentu,seperti
untuk melakukan penghitungan. Jadi, selama konstruktor dijalankan, akan
dilakukan penghitungan.
contoh nya adalah sebagai berikut di bawah ini:
yang di block itu ya contoh nya
contoh nya adalah sebagai berikut di bawah ini:
yang di block itu ya contoh nya
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:
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.
0 komentar:
Posting Komentar