Konsep turunan (inheritance) di Java melalui Contoh Program

Konsep Turunan (Inheritance) Di java Melalui Contoh Program

Di artikel Memahami Konsep Turunan (Inheritance) Di Java, Anda diperkenal pada konsep turunan (inheritance) di bahasa pemrograman Java. Di artikel ini, Anda dapat mempelajari konsep turunan melalui contoh program Java. Konsep turunan membolehkan penggunaan kelas yang sudah ada sebagai superclass untuk mendefinisikan kelas baru turunannya.

Kelas turunan (subclass) akan mewarisi (inherit) data field (properti atau atribut) dan metoda terakses (accessible method) yang dimiliki oleh superclass. Konsep turunan akan menjadikan superclass mempunyai sifat yang lebih umum (general), sedangkan kelas turunannya akan mempunyai sifat yang lebih spesifik.

Kelas turunan dapat didefinisikan lebih cepat dengan memanfaatkan kelas yang ada. Bila definisi kelas turunan berasal dari superclass yang berada di paket berbeda, Anda perlu mengimpor kelas tersebut terlebih dahulu dengan menggunakan kata kunci import. Bila superclass berada di paket yang sama dengan subclass yang didefinisikan, Anda tidak perlu untuk mengimport superclass.

Kelas sebaiknya dikelompokkan menurut jenis dan fungsinya dan diletakkan di nama paket yang menggambarkan kelas tersebut. Kata kunci extends digunakan untuk mendeklarasikan kelas turunan (subclass) dari kelas atasnya (superclass). Dengan kata kunci extends, kelas turunan akan mewarisi data field dan metoda yang dimiliki oleh kelas di atasnya.

Sebenarnya tidak semua data field dan metoda akan diwariskan kepada kelas turunnannya. Data field dan metoda yang dideklarasikan dengan modifier private, tidak akan diwariskan kepada kelas turunannya. Untuk lebih memahami konsep inheritance dengan baik, Anda dapat memahami melalui tiga contoh program Java di artikel ini.

Program pertama adalah kelas PersegiPanjang sebagai superclass. Persegi panjang adalah bangun datar yang memiliki panjang dan lebar sebagai data field. Dari data field panjang dan lebar ini dapat ditentukan keliling dan luas dari persegi panjang.

Kode sumber Java (file berekstensi .java) dan hasil kompilasi (file berekstensi .class) kelas PersegiPanjang diletakkan di direktori (paket) c:\filejava\javaapp\kelas\bangun\datar. Program kedua adalah kelas Balok sebagai subclass dari superclass PersegiPanjang.

Balok adalah bangun ruang yang mempunyai panjang, lebar dan tinggi sebagai data field. Dari data field panjang, lebar dan tinggi, dapat ditentukan pula volume balok. Untuk mempermudah dan mempersingkat pendefinisian kelas Balok, Anda dapat memanfaatkan kelas PersegiPanjang sebagai superclass dari kelas Balok.

Kode sumber dan hasil kompilasi kelas Balok kemudian diletakkan di direktori atau paket c:\filejava\javaapp\kelas\bangun\ruang. Program ketiga adalah Kelas DemoBalok yang berisi metoda main untuk menguji kelas Balok. Berikut ini adalah kode program Java dari ketiga kelas tersebut:

1. Kode program kelas PersegiPanjang.

class PersegiPanjang {
 
   // Data field PersegiPanjang
   double panjang = 1.0;
   double lebar = 1.0;
 
   // Konstruktor pertama
   PersegiPanjang() {
   }
 
   // Konstruktor kedua
   PersegiPanjang(double x) {
      panjang = x;
   }
 
   // Kondtruktor kedua
   PersegiPanjang(double x, double y) {
      panjang = x;
      lebar = y;
   }
    
   // Metoda mencari keliling
   double mencariKelilingPP() {
      return 2 * (panjang * lebar);
   }
 
   // Metoda memcari luas
   double mencariLuasPP() {
      return panjang * lebar;
   }
}

2. Kode program kelas Balok.

// Nama file : Balok.java
// Mendefinisikan kelas Balok
 
// Meletakkan kelas Balok
package bagun.ruang;
 
// Mengimpor kelas PersegiPanjang
import bangun.datar.PersegiPanjang;
 
// Deklarasi kelas Balok
public class Balok extends PersegiPanjang {
 
   // Deklarasi variabel tinggi
   private double tinggi = 1.0;
 
   // Accessor data field tinggi
   public double getTinggi() {
      return tinggi;
   }
 
   // Mutator data field tinggi
   public void setTinggi(double tinggi) {
      this.tinggi = (tinggi > 1) ? tinggi : 1;
   }
 
   // Mencari volume balok
   public double mencariVolumeB() {
      return mencariLuasPP() * tinggi;
   }
}

3. Kode program kelas DemoBalok.

// Nama file : DemoBalok.java
// Menguji kelas Balok
 
// mengimpor kelas
import java.text.DecimalFormat;
import javax.swing.JOptionPane;
import javax.swing.JTextArea;
import bangun.ruang.Balok;
 
// Deklarasi kelas DemoBalok
public class DemoBalok {
 
   // Metoda main
   public static void main(String[ ] args) {
 
      // Mendeklarasikan variabel acuan ke obyek
      DecimalFormat decimalFormat;
      JTextArea textArea;
      Balok balok;
 
      // Membuat obyek Balok
      balok = new Balok();
 
      decimalFormat = new DecimalFormat("0.00");
      String string = "Menggunakan Kelas Balok\n";
 
      string += "\nPanjang balok : " + decimalFormat.format(balok.getPanjang());
      string += "\nLebar balok : " + decimalFormat.format(balok.getLebar());
      string += "\nTinggi balok : " + decimalFormat.format(balok.getTinggi());
      string += "\nVolume balok : " + decimalFormat.format(balok.mencariVolumeB());
 
      // Memodifikasi panjang dan lebar
      string += "\n\nMemodifikasi panjang = 5 dan lebar = 3";
      balok.setPanjang(5);
      balok.setLebar(3);
      string += "\nPanjang balok : " + decimalFormat.format(balok.getPanjang());
      string += "\nLebar balok : " + decimalFormat.format(balok.getLebar());
      string += "\nTinggi balok : " + decimalFormat.format(balok.getTinggi());
      string += "\nVolume balok : " + decimalFormat.format(balok.mencariVolumeB());
 
      // Membuat obyek JTextArea
      textArea = new JTextArea();
 
      // Menampilkan hasil
      textArea.setText(string);
      JOptionPane.showMessageDialog(null, textArea, "Kelas Balok",
         JOptionPane.INFORMATION_MESSAGE);
 
      // Mengakhiri program berpenampilan GUI
      System.exit(0);
   }
}

SUKAI DAN BAGIKAN ARTIKEL INI:
Pin It