PENJELASAN TENTANG INHERTIRANCE , ENCAPSULATION , POLYMORPHYSM , OVERLOADING, DAN OVERRIDING.
-
Pengertian Inheritance
Perngertian dari inheritance adalah dimana sebuah objek dapat mempunyai objek turunan. Dalam hal pemrogramman makan dapat diimpelementasikan dengan sebuah class yang mempunyai class turunan. Class yang mempunyai class turunan disebut sebagai Parent Class atau Base Class, sedangkan class yang menjadi turunan dari Parent Class disebut sebagai Subclass atau Child Class. Secara sederhana misal Hewan adalah parent class maka child class bisa berupa ayam,kucing,bebek dll.
Suatu subclass dapat mewarisi sebagian atau keseluruhan sifat dari parent class-nya, denga kata lain sebuah subclass hanya merupakan perluasan dari parent class.
Dekalarasi Inheritance
Cara untuk mendeklarasikan inheritance adalah dengan memberikan keyword extends setelah nama class diikuti denga nama parent class.Kata kunci extends memberikan informasi pada kompiler Java bahwa kita ingin melakukan perluasan class.
Contoh dari deklarasi inheritance:
class Titik private integer x private integer y Titik() x < 0 y < 0 {end Titik} public getX() -> integer -> x {end getX} public getY() -> integer -> y {end getY} {end class} class Titik3D: Titik private integer z Titik3D() z <- 0 {end Titik3D} public getZ() -> integer -> z {end getZ} {end class}
Keterkaitan antara kelas Titik dan Titik3D adalah kelas Titik3D merupakan kelas turunan dari kelas Titik. Dalam hal ini kelas Titik disebut dengan kelas dasar atau super classatau base classsedangkan kelas Titik3D disebut sebagai kelas turunan atau derived classatau subclass.
Pada contoh di atas, ketika kelas Titik3D dibuat objeknya maka objek tersebut dapat menggunakan metode yang ada pada kelas Titik walau pada kode programnya metode itu tidak dituliskan, misalkan sebagai berikut:
Pada contoh di atas, ketika kelas Titik3D dibuat objeknya maka objek tersebut dapat menggunakan metode yang ada pada kelas Titik walau pada kode programnya metode itu tidak dituliskan, misalkan sebagai berikut:
Titik3D p <- new Titik3D() integer x <- p.getX() integer y <- p.getY() integer z <- p.getZ()
Keuntungan dari pewarisan adalah tidak perlu mengutak atik kode kelas yang membutuhkan tambahan atribut atau metode saja, karena tinggal membuat kelas turunannya tanpa harus mengubah kode kelas dasarnya. Kelas dasar akan mewariskan semua atribut dan kodenya kecuali konstruktor dan destruktor yang memiliki izin akses publicdan protectedke kelas turunannya dengan izin akses yang sama dengan pada kelas dasar.
Ketika sebuah kelas turunan dibuat objeknya saat eksekusi, maka secara implisit konstruktor kelas dasar dipanggil terlebih dahulu baru kemudian konstruktor kelas turunan dijalankan. Begitu juga saat objek dimusnahkan maka secara destruktor kelas turunan akan dijalankan baru kemudian destruktor kelas dasar dijalankan.
Ketika sebuah kelas turunan dibuat objeknya saat eksekusi, maka secara implisit konstruktor kelas dasar dipanggil terlebih dahulu baru kemudian konstruktor kelas turunan dijalankan. Begitu juga saat objek dimusnahkan maka secara destruktor kelas turunan akan dijalankan baru kemudian destruktor kelas dasar dijalankan.
Encapsulation
Maksud dari encapsulation adalah membungkus class dan menjaga apa apa saja yang ada didalam class tersebut, baik method ataupun atribut, agar tidak dapat di akses oleh class lainnya. Untuk menjaga hal tersebut dalam Encapsulation dikenal nama Hak Akses Modifier yang terdiri dari :a. Private = memberikan hak akses hanya pada class itu sendiri, artinya apa-apa saja yang ada di dalam class A baik itu method ataupun atribut hanya bisa diakses oleh class A saja, class lain tidak bisa mengaksesnya.
b. Public = memberikan hak akses kepada atribut atau method agar bisa diakses oleh siapapun (property atau class lain diluar class yang bersangkutan), artinya method atau atribut yang ada diclass A dapat diakses oleh siapaun baik itu class A, class B dan seterusnya.
c. Protected = memberikan hak akses kepada class itu sendiri dan class hasil turunannya (inheritance), artinya apa apa saja yang ada diclass A hanya bisa diakses oleh class A sendiri dan class yang meng Extends class A. Namun harus dipahami class lain yang berada dalam satu package dengan class A mampu mengakses tipe data protected, Sedangkan yang tidak mampu mengakses adalah class-class yang berada diluar package class A. untuk dapat mengaksesnya, class yang berada diluar package class A harus meng extends class A.
Contoh dalam Program :
import java.io.*; public class lingkaran{ private double radius; public lingkaran(double radius){ this.radius=radius; } public void Luas(){ double luas= 3.14*radius*radius; System.out.println(“Luas lingkaran: “+luas); } public void Keliling(){ double keliling= 2.0*3.14*radius; System.out.println(“Keliling Lingkaran: “+keliling); } public static void main(String[]args)throws Exception{ DataInputStream dis= new DataInputStream(System.in); System.out.print(“input radius: “); String input= dis.readLine(); double i= Double.parseDouble(input); lingkaran A= new lingkaran(i); A.Luas(); A.Keliling(); } }
Polymorphysm
Polymorphism adalah suatu aksi yang memungkinkan pemrogram menyampaikan pesan tertentu keluar dari hirarki obyeknya, dimana obyek yang berbeda memberikan tanggapan/respon terhadap pesan yang sama sesuai dengan sifat masing-masing obyek.Atau Polymorphic dapat berarti banyak bentuk, maksudnya yaitu kita dapat menimpa (override), suatu method, yang berasal dari parent class (super class) dimana object tersebut diturunkan, sehingga memiliki kelakuan yang berbeda.
public class BeautyfullMahasiswa extends Mahasiswa{
public void printNama(){
System.out.println(“Hallo, saya Mahasiswa yg cantik n baik”);
Super.printNama();
}
}
Simpan dengan nama Main.java
public class Main{
public static void main(String[] args]) {
BeautyfullMahasiswa mhs = new BeautyfullMahasiswa();
mhs.setNim(“09530524”);
mhs.setNama(“Afrida Asna”);
mhs.printNim();
mhs.printNama();
}
}
Overloading
Method Overloading adalah sebuah kemampuan yang membolehkan sebuah class mempunyai 2 atau lebih method dengan nama yang sama, yang membedakan adalah parameternya.
Pada method overloading perbedaan parameter mencakup :
- Jumlah parameter
- Tipe Data dari Parameter
- Urutan dari tipe data parameter
public class ContohOverloading { public void jumlah (int a, int b){ System.out.println("Jumlah 2 angka ="+ (a + b)); } //oveloading perbedaan jumlah parameter public void jumlah (int a, int b, int c){ System.out.println("Jumlah 3 angka =" + (a + b + c)); } //overloading perbedaan tipe data parameter public void jumlah (double a, int b){ System.out.println("Jumlah 2 angka (double+int) = "+ (a + b)); } //overloading perbedaan urutan tipe data parameter public void jumlah (int b, double a){ System.out.println("Jumlah 2 angka (int+double) = "+ (a + b)); } }
Contoh Penggunaan Pada Class utama :
public class PenggunaanOverloading { public static void main(String[] args) { ContohOverloading co = new ContohOverloading(); co.jumlah(83,32); co.jumlah(34,454,432); co.jumlah(34.43,34); co.jumlah(28,33.23); } }
Overriding
Method overriding merupakan method yang parrent class yang ditulis kembali oleh subclass. Aturan dari method overriding pada Java :- Parameter yang terdapat pada method overriding di subclass harus sama dengan parameter yang terdapat pada parent class.
- Aturan hak akses, hak akses method overriding di subclass tidak boleh lebih ketat di bandingkan dengan hak akses method pada parent class.
Berikut ini contoh overriding :
public class Binatang { public void begerak(){ System.out.println("Binatang bergerak sesuai kemampuannya"); } public void berkembangBiak(){ System.out.println("Binatang berkembang biak sesuai kemampuannya"); } }
public class PenggunaanOverriding { public static void main(String[] args) { // TODO Auto-generated method stub Binatang b = new Binatang(); Mamalia m = new Mamalia(); Binatang bm = new Mamalia(); b.begerak(); m.begerak(); bm.begerak(); bm.berkembangBiak(); } }
Sekian penjelasan tentang penggunaan java dari saya , Terimakasih :).