Sabtu, 13 Juli 2013

BAB 9 - KONSTRUKTOR, OVERLOADING DAN PEWARISAN PADA JAVA

1.    KONSTRUKTOR

Metode konstruktor adalah metode yang dapat digunakan untuk memberikan nilai awal saat objek diciptakan. Metode ini akan dipanggil secara otomatis oleh Java ketika new dipakai untuk menciptakan instan kelas.

Konstruktor mempunyai sifat:
·         Namanya sama dengan kelas
·         Tidak memiliki nilai baik
·         Tidak boleh ada kata kunci void

Contoh:

//nama berkas : konstruktor.java
class mobil
{
private String warna;
private int tahun;
public mobil(String warna, int tahun) //Konstruktor
{
  this.warna = warna;
  this.tahun = tahun; //Variable instan
}
public void info()  //Metode
{
  System.out.println(“Warna mobil saya :” + this.warna);
  System.out.println(“Dibuat tahun : ” + this.tahun);
}
}
public class konstruktor
{
public static void main (String[] args)
{
  mobil mobilku = new mobil(“Silver”, 2008);
  mobilku.info();
}
}

Hasilnya:
Warna mobil saya : Silver
Dibuat tahun : 2008

Keterangan:
Pada program di atas tampak bahwa nama konstruktor sama dengan nama kelas. Dalam hal ini konstruktor memiliki dua parameter, yaitu warna dan tahun. Selain itu penciptaan objek tidak lagi dilakukan dengan menggunakan bentuk : mobil = new mobil();


2.    OVERLOADING

Overloading terhadap konstruktor merupakan suatu mekanisme pembuatan konstruktor yang memiliki bentuk lebih dari satu. Dalam hal ini, pembeda antara satu konstruktor dengan konstruktor yang lain berupa jumlah parameter atau tipe parameter.

Contoh:
//nama berkas : konstruktor1.java
class mobil
{
private String warna;
private int tahun;
public mobil(String warna, int tahun) //Konstruktor-1
{
  this.warna = warna;
  this.tahun = tahun;
}
public mobil() //Konstruktor-2
{
}
public void info()
{
  System.out.println(“Warna mobil saya :” + this.warna);
  System.out.println(“Dibuat tahun : ” + this.tahun);
}
}
public class konstruktor1
{
public static void main (String[] args)
{
  mobil mobilku = new mobil(“Silver”, 2008);
  mobilku.info();
  mobil mobilmu = new mobil();
  mobilmu.info();
  mobil mobilnya = new mobil(“Silver”, 2008);
  mobilnya.info();
}
}


Hasilnya:
Warna mobil saya : Silver
Dibuat tahun : 2008
Warna mobil saya : null
Dibuat tahun : 0
Warna mobil saya : Silver
Dibuat tahun : 2008

Keterangan:
Tampak bahwa pemanggilan dengan mobil mobilmu = new mobil(); diperkenankan pada program di atas. Mengingat konstruktor yang tidak melibatkan parameter tidak melibatkan perintah apapun, maka warna dan tahun diisi dengan nilai default , yaitu null dan 0.

Overloading juga dapat dikenali pada metode non konstraktor.

Contoh:
//nama berkas : overloading.java
class matematika
{
static public double kuadrat(double nilai)
{
return nilai*nilai;
}
static public int kuadrat(int nilai)
{
return nilai*nilai;
}
static public double kuadrat(String nilai)
{
double bilangan = Double.valueOf(nilai).doubleValue();
return bilangan*bilangan;
}
}
public class overloading
{
public static void main (String[] args)
{
System.out.println (“Kuadrat dari 25.0 adalah : ” + matematika.kuadrat(25.0));
System.out.println (“Kuadrat dari 25 adalah : ” + matematika.kuadrat(25));
System.out.println (“Kuadrat dari \”25”\ adalah : ” + matematika.kuadrat(“25”));
}
}

Hasilnya:
Kuadrat dari 25.0 adalah : 625.0
Kuadrat dari 25.0 adalah : 625
Kuadrat dari “25” adalah : 625.0

Keterangan:
Metode kuadrat mempunyai tiga buah bentuk, yaitu double, int, String. Program akan menghasilkan keluaran sesuai dengan jenis parameter yang diinput pada program utama.



VARIABEL KELAS

Variabel kelas adalah variable yang berlaku tidak terbatas hanya pada objek tetapi pada seluruh objek. Variabel ini didefinisikan dengan menggunakan kata kunci static.

Contoh:

//nama berkas : variabelkelas.java
class bilangan
{
static int pencacah = 0;
private int nilai;
public bilangan (int nilai)
{
this.nilai = nilai;
this.pencacah++;
}
public void info()
{
System.out.println(“Data ke- ” +this.pencacah);
System.out.println(“Bilangan yang Anda ketik : ” + this.nilai);
}
}
public class variabelkelas
{
public static void main (String[] args)
{
bilangan satu =new bilangan(44);
satu.info();
bilangan dua =new bilangan(55);
dua.info();
bilangan tiga =new bilangan(66);
tiga.info();
}
}

Hasilnya:
Data ke- 1
Bilangan yang Anda ketik : 44
Data ke- 2
Bilangan yang Anda ketik : 55
Data ke- 3
Bilangan yang Anda ketik : 66

Keterangan:
Terlihat bahwa nilai pencacah bertambah sebesar satu setiap kali objek berkelas bilangan dibentuk.


3.    PEWARISAN

Pewarisanmerupakan konsep dalam pemograman berorientasi objek yang memungkinkan untuk membuat suatu kelas dengan didasarkan pada kelas yang sudah ada sehingga mewarisi semua metode dan variabelnya.



Pada gambar, Kelas_A disebut kelas dasar atau superkelas, sedangkan Kelas_B disebut kelas turunan atau kelas anak.
Semua metode dan variable instan yang terdapat pada kelas dasar diturunkan ke kelas turunan. Namun kelas turunan dapat menambahkan metode baru atau variable instan baru sendiri.

Contoh:
//nama berkas: alpha.java
class alpha
{
   private int a=4;
   public void info()
   {
System.out.println (“Nilai a pada program alpha = “ +a);
System.out.println (“Dipanggil oleh program : “ +this.getClass().getName()); //untuk memperoleh nama kelas
   }
}

Untuk membuat kelas turunan, secara prinsip dibuat dengan menggunakan bentuk:
class KelasTurunan extends KelasDasar()
{
pernyataan;
}


Contoh:
//nama berkas: bravo.java
class bravo extend alpha
{
   public static void main (String[] args)
   {
bravo cetak = new bravo();
cetak.info();
int a = 44;
System.out.println (“Nilai a pada program bravo = “ +a);
   }
}

Hasil :
Nilai a pada program alpha = 4
Dipanggil oleh program : bravo
Nilai a pada program bravo = 44



PENENTU AKSES PROTECTED

Penentu akses ini berguna untuk mengatur agar suatu variable instan ataupun metode yang terdapat pada sebuah kelas dapat diakses pada kelas itu sendiri dan pada subkelas.

Contoh:
//nama berkas: charlie.java
class charlie
{
   private int a=4;
   protected int b=44;
   public void info()
   {
System.out.println (“Nilai a = “ +a);
System.out.println (“Nilai b = “ +b);
System.out.println (“Dipanggil oleh program : “+this.getClass().getName());
   }
}

Setelah itu buat program berikut sebagai turunan dari program charlie.java :

//nama berkas: delta.java
class delta extends charlie
{
   private int c=5;
   public void info()
   {
System.out.println (“Nilai a = “ +a); //baris ini harus dihapus!
System.out.println (“Nilai b = “ +b);
System.out.println (“Nilai c = “ +c);
System.out.println (“Dipanggil oleh program : “+this.getClass().getName());
   }
}

Hasil:

delta.java:7: a has private access in charlie
System.out.println(Nilai a= “+a);
1 error

Keterangan:

Tampak bahwa pesan kesalahan yang menyatakan variable instan a tidak dikenal karena a adalah variable private, sedangkan b dengan variable protected dikenal pada kelas delta.
Untuk memanggil kelas charlie dan delta, buat program berikut ini:

//nama berkas: panggil.java
class panggil
{
   public static void main (String[] args)
   {
charlie obyek1 = new Charlie();
obyek1.info();
delta obyek2 = new delta();
obyek2.info();
   }
}


Hasil
Nilai a = 4
Nilai b = 44
Dipanggil oleh program : Charlie
Nilai b = 44
Nilai c = 5
Dipanggil oleh program : delta


PENENTU ANSTRACT

Java menyediakan suatu mekanisme yang memungkinkan suatu metode ditentukan dari dalam kelas, tetapitidak disertai dengan definisinya. Metode ini dikenal dengan nama metode abstrak, sedangkan kelasnya dinamakan kelas abstrak.

Contoh:

//nama berkas: kendaraan.java
public abstract class kendaraan
{
   protected String nama;
   public abstract void jalankan();
}

Pada program di atas tampak bahwa metode abstrak jalankan()tidak mempunyai tubuh program karena definisi metode tersebut harus dilakukan pada subkelas.

Contoh:

//nama berkas: tesjalankan.java
class sepeda extends kendaraan
{
   public sepeda(String nama)
   {
this.nama=nama;
   }
   public void jalankan()
   {
System.out.println (“Duduklah di atas sadel” +this.nama+” dan kayuhlah…”);
   }
}
class mobil extends kendaraan
{
   public mobil (String nama)
   {
this.nama = nama;
   }
   public void jalankan()
   {
System.out.println (“Duduklah di depan stir” +this.nama+” dan hidupkan mesin…”);
   }
}
public class tesjalankan
{
   public static void main(String[]args)
   {
sepeda sepedaku = new sepeda(“Sepeda BMX”);
sepedaku.jalankan();
mobil mobilku = new mobil(“Sedan”);
mobilku.jalankan();
   }
}


Hasil:

Duduklah di atas sadel Sepeda BMX dan kayuhlah…
Duduklah di depan stir Sedan dan hidupkan mesin…




Artikel Terkait:

Tidak ada komentar:

Posting Komentar

Silahkan isi komentar Anda pada kolom komentar di bawah ini atau dengan kolom komentar Facebook pada bagian atas ini.
Berkomentarlah dengan sehat! Dilarang membuat komentar dengan isi yang mengandung spam, sara, pornografi, politik, iklan, dan diluar norma yang berlaku. Thanks.