Kamis, 17 Agustus 2017

konstruktor dan overloading

pada tanggal 11 agustus 2017 saya belajar tentang konstruktor dan overloading.. baiklah sekarang akan kita bahas!

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
 
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 nya adalah seperti di bawah... void itu adalah contohnya.

0 komentar:

Posting Komentar