Konsep OOP di Java TRASPAC, Mei 2009 Oleh : Siwi Arie Widadi
Mei Konsep OOP Umum Inheritance Polimorfisme Enkapsulasi
Mei Enkapsulasi -> Kemampuan dari sebuah object untuk menjadi kontainer terhadap properti atau method yang dimiliki, sekaligus menentukan hak aksesnya.
Mei Manfaat Enkapsulasi Modularitas, Low Coupling, High Cohesion Data Hiding
Mei Penerapan Enkapsulasi di Java (1) Versi 1 (tanpa enkapsulasi) class Vehicle { public double load; public double maxLoad; //Initialize new Vehicle with maximal load given public Vehicle(double maxLoad){ this.maxLoad = maxLoad; } }
Mei Penerapan Enkapsulasi di Java (2)
Mei Penerapan Enkapsulasi di Java (3) Perhatikan bahwa pada TestVehicle, dibuat Vehicle dengan kapasitas maksimum kg. Tetapi pada program selanjutnya terdapat penambahan boxes yang melebihi kapasitas ( kg) trouble. Kenapa trouble? Karena tidak ada pengecekan kapasitas maksimum sehingga vehicle nya kelebihan kapasitas.
Mei Penerapan Enkapsulasi di Java (4) Versi 2 (dengan enkapsulasi) class Vehicle { private double load; private double maxLoad; //Initialize new Vehicle with maximal load given public Vehicle(double maxLoad){this.maxLoad = maxLoad} //Getter and setter //To make sure that load <= maxLoad public boolean addLoad(double load){} }
Mei Inheritance -> Kemampuan sebuah class untuk dapat menggunakan properti dan method dari class yang lain -> Penerapan relasi pada dunia nyata ke dalam program Kegunaan : mapping real object ke dalam programming object (class)
Mei Jenis-jenis Relasi Asosiasi -> Hubungan / relasi antar dua object secara umum Agregasi -> Agregasi merupakan hubungan antara satu object dengan object lainnya dimana object satu dengan object lainnya sebenarnya terpisah namun disatukan, sehingga tidak terjadi kebergantungan (Object lain bisa ada walau object penampungnya tidak ada ) Komposisi -> Serupa dengan agregasi hanya saja, terdapat ketergantungan dari salah satuobject
Mei Penerapan Relasi di Java Extend (is-a) Class Engineer extend Person(){ } Composition (has-a) Class Engineer(){ private Person person; }
Mei Polimorfisme -> Kemampuan dari sebuah action atau method untuk melakukan sesuatu yang berbeda -> Satu nama, mempunyai beberapa/banyak bentuk
Mei Penerapan Polimorfisme di Java Overloading Kemampuan sebuah method untuk memiliki parameter yang berbeda. Contoh : System.out.println(tipeParameter parameter);
Mei Penerapan Polimorfisme di Java Overriding Kemampuan subClass untuk melakukan implementasi tersendiri dari sebuah method yang sudah didefinisikan di superClass public abstract class Animal // class is abstract { private String name; public Animal(String nm) // constructor method { name=nm; } public String getName() // regular method { return (name); } public abstract void speak(); // abstract method - note no {} }
Mei Penerapan Polimorfisme di Java Dinamic Method Binding Kemampuan superClass untuk menentukan method yang akan dijalankan pada subClass yang berbeda public class AnimalReference{ public static void main(String args[]) Animal ref // set up var for an Animal Cow aCow = new Cow("Bossy"); // makes specific objects Dog aDog = new Dog("Rover"); Snake aSnake = new Snake("Ernie"); // now reference each as an Animal ref = aCow; ref.speak(); ref = aDog; ref.speak(); ref = aSnake; ref.speak(); }
Mei Terima Kasih..