Algoritma
&
Metode Object Oriented II
OOP
Definisi dari OOP, adalah konsep pemrograman yang dalam membuat suatu program berorientasi pada suatu objek. Objek yang diorientasikan harus memiliki method, property, type, dan identitas.
Dalam OOP, data dan fungsi yang digunakan berada pada class dan objek, lalu pada bahasa pemrograman OOP seperti java, memiliki kemampuan untuk menambah dimensi pada prosedur untuk lebih fleksibel, jelas, dan mudah digunakan kembali dengan abstraction, encapsulation, inheritance, dan polymorphism.
Class, kumpulan dari objek, property(behavior, attribute), dan method(function)
Ex :
class mobil {
String merek, jenis, warna ;
int jumlah roda;
}
Object, representasi dari class
Ex : Honda City berwarna merah metalik dan beroda 4
Method(behavior), yaitu apa saja yang bisa objek lakukan, dan keuntunagn dari method ada 3, yaitu :
- Reusable, method dapat digunakan berulang kali dengan memanggil method yang diperlukan,
- Modularize, membuat code memiliki ruang(space), sehingga bisa mencari kesalahan yang mungkin ada serta meningkatkan kualitas program,
- Maintenable, mudah untuk diatur(penempatan method).
Abstraction, kemampuan program untuk melewati suatu aspek dalam proses informasi
Encapsulation, menyembunyikan informasi(property) pada suatu objek, dari user
Inheritance, penurunan sifat dari class utama(super/parent class) pada class turunan(sub class), tiap subclass hanya boleh memiliki satu super class, tetapi super class bisa memiliki banyak sub class
Polymorphism, suatu method yang memiliki banyak fungsi. Memberikan fleksibilitas pada aplikasi tergantung dari keperluan pada aplikasi, serta membuat code jadi simple dalam membuat dan melakuakn modifikasi pada aplikasi.
Class & Object
Constuctor, digunakan untuk membuat objek, dan dalam pemrograman nama constructor sama dengan nama class
Access Modifier, untuk mengamankan data yang ada dalam class, dan fungsi ini memiliki 4 jenis, yaitu :
- Public, bisa diakses oleh semua class
- Protected, class bisa diakses class itu sendiri, serta class turunan(sub class) class tersebut
- Private, class hanya bisa diakses oleh class itu sendiri
- Package, untuk mengatur class, seperti membuat folder untuk class.
Overloading, fungsi yang memiliki nama yang sama tapi dengan isi yang berbeda dalam suatu class
Abstact method, dumy code method(code yang tidak memilki fungsi), dan digunakan dalam abstract class
Abstract class, class yang tidak memiliki implementasi, dan bisa digunakan dalam subclass
Static variables, menyimpan nilai(value) dalam local memory
Static method, method tersebut bisa dipanggil tanpa harus membuat objek terlebih dahulu dalam class
Inner class(nested class), suatu class yang ada dalam class, bisa dinyatakan(dibuat) dengan access modifier, dan static variables.
Basic Class
Wrapper class, untuk membungkus tipe data primitif ke dalam class
8 tipe data primitif : byte, short, int, long, float , double, char, boolean
Wrapper class method, seluruh class numeric yang dipanggil dari abstract class numeric memiliki method seperti doubleValue(). Wrapper class akan melakukan override pada fungsi toString dan equals pada class object fungsi tersebut
Inheritance
Inheritance, digunakan karena dapat menerima variable dan method dari class yang sudah ada
subclass, memberikan hak untuk akses variable, method, dan nested class yang ada pada super class, dan untuk memanggil method superclass adalah dengan menggunakan kata 'method'
Ex :
public void printweight(){
system.out.ptontln("your weight is "+super.getweight);
}
Overriding, fungsi yang sama dalam class yang berbeda
Final class, class yang tidak dapat melakukan extends
Ex: public final class destination{
}
Final method, method tidak dapat melakukan fungsi override
Ex :
public final String getPlace(){
return place;
}
Polymorphism
Polymorphism, digunakan dalam absract method dan abstract class, dan memiliki 2 jenis, yaitu :
- static(compile time)
- dynamic(run time)
Dynamic binding, penggunaan implementasi secara dinamis olej Java Virtual Machine saat runtime, dan memiliki beberapa keuntungan, seperti :
- class baru dapat dimuat langsung tanpa harus compile ulang
- fitur/fungsi baru dapat ditambahkan secara transparan
Casting object, convert object pada suatu class ke jenis class lain dalam hierarki inheritance, dan ada 2 jenis casting object, yaitu :
Implicit casting
Ex :
Object o = new Hero();
m(o), //fungsi m adalah m(Hero);
Explicit casting
Ex :
Hero b = (Hero)o;
_________________________________________________________________________________