A.1 INHERITANCE ( PEWARISAN)
Class dapat didefinisikan dengan referensi pada class yang lain yang telah terdefinisi. Inheritance (Pewarisan) merupakan salah satu dari tiga konsep dasar OOP. Konsep inheritance ini mengadopsi dunia riil dimana suatu entitas/obyek dapat mempunyai entitas/obyek turunan. Dengan konsep inheritance, sebuah class dapat mempunyai class turunan. Suatu class yang mempunyai class turunan dinamakan parent class atau base class. Sedangkan class turunan itu sendiri seringkali disebut subclass atau child class. Dalam dunia riil, suatu entitas turunan dapat mewarisi apa-apa yang dipunyai dari entitas induknya. Demikian juga dalam konsep inheritance, suatu subclass dapat mewarisi apa-apa yang dipunyai oleh parent class. Inilah yang terpenting dari konsep inheritance. Karena suatu subclass dapat mewarisi apa-apa yang dipunyai oleh parent class-nya, maka member dari suatu subclass adalah terdiri dari apa-apa yang ia punyai dan juga apa-apa yang ia warisi dari class parent-nya. Kesimpulannya, boleh dikatakan bahwa suatu subclass adalah tidak lain hanya memperluas (extend) parent class-nya
Single Inheritance
Satu hal penting yang harus kita ketahui dari konsep inheritance yang ada di Java adalah Java hanya memperkenankan adanya single inheritance. Konsep single inheritance hanya memperbolehkan suatu sublass mempunyai satu parent class. Dengan konsep single inheritance ini, masalah pewarisan akan dapat diamati dengan mudah. Inilah salah satu keunggulan OOP
dalam Java.
Kontrol Pengaksesan
Dalam dunia riil, suatu entitas induk bisa saja tidak mewariskan sebagian dari apaapa yang ia punyai kepada entitas turunan karena sesuatu hal. Demikian juga dengan konsep inheritance dalam OOP. Suatu parent class dapat tidak mewariskan sebagian member-nya kepada subclass nya
Keuntungan Inheritance
- Bersifat reusable
Tidak harus menyalin semua data dan method dari suatu kelas jika akan
menggunakannya lagi
- Kemudahan dalam me-manage kelas yang memiliki data dan method yang sama
Untuk memodifikasi suatu data atau method untuk semua subkelas atau
kelas anak, maka tidak perlu melakukan perubahan di masing-masing kelas anak
melainkan hanya pada kelas induk saja.
A.2 KEYWORD SUPER
Kata kunci super dipakai untuk merujuk pada member dari parent class, sebagaimana
kata kunci this yang dipakai untuk merujuk pada member dari class itu sendiri. Adapun format
penulisannya adalah sebagai berikut :
super.data_member, merujuk pada data member pada parent class
super.function_member(), merujuk pada function member pada parent class
super(), merujuk pada konstruktor pada parent class
Konstruktor tidak diwariskan
Ketika kita memakai konsep inheritance, maka yang harus kita ketahui adalah
konstruktor dari parent class tidak dapat diwariskan ke subclass-nya. Sebagai konsekuensinya
adalah setiap kali kita membuat suatu subclass, maka kita harus memanggil konstruktor parent
class di konstruktor subclass. Jika kita tidak mendeklarasikannya secara eksplisit, maka kompiler
Java akan menambahkan deklarasi pemanggilan kontruktor parent class di konstruktor subclass.
Ada beberapa hal yang harus diingat ketika menggunakan pemanggil constuktor
super:
1. Pemanggil super() HARUS DIJADIKAN PERNYATAAN PERTAMA DALAM
constructor.
2. Pemanggil super() hanya dapat digunakan dalam definisi constructor.
3. Termasuk constructor this() dan pemanggil super() TIDAK BOLEH TERJADI
DALAM constructor YANG SAMA.
Pemakaian lain dari super adalah untuk menunjuk anggota dari superclass
(seperti reference this).
A.3 KEYWORD THIS
Kata kunci this adalah variable implisit yang ada didalam java. Ditinjau dari
kepemilikannya, variabel terbagi menjadi 2, yaitu : Variabel kelas dan Variabel Instans. Variabel
kelas adalah variabel yang melekat pada kelas dan tidak terpengaruh oleh proses instantiasi,
sehingga tidak dapat dimiliki dan diakses oleh objek yang diinstans dari kelas tersebut. Variabel
instans adalah variabel yang dimiliki oleh objek dari proses intantiasi suatu kelas.
Variable This digunakan untuk mengakses variabel instans dari masing-masing
objek. This sebenarnya adalah sebuah variable read-only (tidak dapat diubah nilainya). Dengan
variable ini, akan didapatkan reference atau pointer menuju objek terkini. Misalkan sebuah
aplikasi sedang berjalan, pada saat tertentu yang dijalankan oleh komputer adalah method
aMethod() milik object anObject. Dari method aMethod() dibutuhkan reference ke objek terkini
yaitu object anObject itu sendiri. Untuk itulah digunakan variabel this dalam method aMethod()
milik object anObject.
Penggunaan keyword this memiliki alasan-alasan mengenai mengapa ia harus kita
gunakan, berikut adalah alasan mengapa kita menggunakan this serta kegunaan keyword this
secara lengkap :
ü Kata kunci this dapat digunakan untuk beberapa alasan berikut:
1. Adanya ambigu pada atribut lokal dari variabel lokal
2. Menunjuk pada object yang meminta method non-static
3. Menunjuk pada konstruktor lain.
Sebagai contoh pada maksud pertama, perhatikan kode berikut dimana variabel data
disediakan sebagai sebuah atribut dan parameter lokal pada saat yang sama.
class ThisDemo1 {
int data;
void method(int data) {
this.data = data;
/* this.data menunjuk ke atribut
sementara data menunjuk ke variabel lokal */
}
}
Contoh berikut menunjukkan bagaimana object this secara mutlak menunjuk ketika
anggota nonstatic dipanggil.
class ThisDemo2 {
int data;
void method() {
System.out.println(data); //this.data
}
void method2() {
method(); //this.method();
}
Sebelum melihat ke contoh yang lain, mari pertama meninjau pengertian method
overloading. Konstruktor seperti juga method dapat juga menjadi overload. Method yang
berbeda dalam class dapat memberi nama yang sama asalkan list parameter juga berbeda.
Method overloaded harus berbeda dalam nomor dan/atau tipe dari parameternya. Contoh
selanjutnya memiliki konstruktor overloaded dan referensi this yang dapat digunakan untuk
menunjuk versi lain dari konstruktor.
class ThisDemo3 {
int data;
ThisDemo3() {
this(100);
}
ThisDemo3(int data) {
this.data = data;
}
}
Kata kunci this memiliki kegunaan didalam pemakaiannya, berikut adalah beberapa
kegunaan untuk kata kunci this :
ü Beberapa kegunaan dari keyword this :
1. Untuk merefer ke atribut dan method local.
2. Keyword this tidak membedakan antara method lokal atau variabel
constructor dengan variabel instance.
3. Keyword this digunakan untuk melewatkan current object sebagai
parameter ke method atau constructor yang lain.
Overloading
Overloading merupakan suatu function yang memiliki parameter , dan function
tersebut dapat memiliki nama function yang sama dengan yang lainnya dengan syarat jumlah
parameter mesti berbeda atau bisa kita bilang situasi di mana beberapa rutin dalam sebuah
program dapat mempunyai nama sama tetapi berbeda jenis parameter dan atau jenis return value.
Ciri-ciri overloading adalah sebagai berikut :
1. Nama method harus sama
2. Daftar parameter harus berbeda
3. Return type boleh sama, boleh berbeda
Overriding
Untuk beberapa pertimbangan, terkadang class asal perlu mempunyai
implementasi berbeda dari method yang khusus dari superclass tersebut. Oleh karena itulah,
method overriding digunakan. Subclass dapat mengesampingkan method yang didefinisikan
dalam superclass dengan menyediakan implementasi baru dari method tersebut.
Ciri-ciri yang dimiliki oleh overriding :
1. Nama method harus sama
2. Daftar parameter harus sama
3. Return type harus sama
Overriding memiliki peraturan dimana method yang terkena Override (overridden
method) tidak boleh mempunyai modifier yang lebih luas aksesnya daripada method yang mengoverride
(overriding method).
Contoh :
class Parent {
public void Info() {
System.out.println(“ini class parent”);
}
class Child extends Parent {
public void Info() {
System.out.println(“ini class child”);
}
Categories: