Rabu, 25 September 2019
Pada
sekitar pukul sembilan pagi, alhamdulillah kami semua sudah berkumpul didalam
kelas. Selama mengisi waktu luang, kami pun memanfaatkannya dengan melakukan
berbagai aktifitas positif. Saya sendiri memanfaatkan waktu dengan mengerjakan
tugas programming dimana kami harus membuat contoh inheritance (Pewarisan
sifat) OOP pada java dengan berbagai komponen didalamnya. Selain proses
pengerjaan tugas tersebut memakan waktu yang cukup lama, proses tersebut juga
cukup menguras otak. Setelah mengerjakan tugas tersebut, saya sendiri
mempelajari secara mandiri materi Inner Class & Polimorphism pada OOP java
karena kedua materi tersebut adalah tugas yang diberikan Kang Basyir untuk
dipelajari secara otodidak.
Inner
Class merupakan kelas yang letak pembuatannya berada didalam kelas. Cara
pembuatan inner class ini sama seperti membuat kelas biasa, hanya saja kita
memnuat kelas tersebut didalam kelas yang sudah dibuat. Berikut ini adalah
contoh pembuatan inner class dimana pada kelas Kampus terdapat beberapa inner
class yaitu : kelas Mahasiswa, Dosen, dan Staff :
package sebagai.contoh;
public class Kampus {
public class Mahasiswa{
}
public class Dosen{
String nama;
String NIP;
}
public class Staff{
}
}
Pada Inner Class juga kita masih bisa mengakses data yang
sifatnya private yang ada dikelas utama karena masih dalam satu kelas. Adapun
cara memanggil suatu objek pada inner class, penulisannya seperti ini :
NamaKelas objek = new NamaKelas();
namaInnerClass objekInner = objek.new namaInnerClass();
Untuk lebih jelasnya, disini saya akan contohkan cara
memanggil “nama” yang ada pada inner class Dosen -yang telah kita tampilkan
diatas- melalui kelas yang baru -yang terpisah dari kelas Kampus- :
package sebagai.contoh;
import sebagai.contoh.Kampus.Dosen;
public class Program {
public static void main(String[] args) {
Kampus objekUtama = new Kampus();
Dosen objekInner = objekUtama.new Dosen();
objekInner.nama = "Ihsan";
System.out.println(objekInner.nama);
}
}
Selanjutnya
adalah materi tentang Polimorfisme / Polimorphism pada OOP Java. Jika kita
artikan dari segi katanya, “poli” yang bermakna banyak (atau lebih dari satu)
& “morph” yang bermakna bentuk. Relasinya dengan OOP adalah sebuah objek
bisa memiliki banyak bentuk, dari relasi tersebut memungkinkan terjadi beberapa
hal :
-
Suatu objek bisa berasal
dari kelas induk/ super class namun value-nya bisa dipanggil menggunakan kelas
turunannya.
-
Sebuah kelas induk namun
bisa bertingkah laku atau memiliki sifat kelas turunannya.
-
Sebuah kelas dapat
disamarkan menjadi kelas induknya.
Pada umumnya penulisan objek adalah : NamaKelas objek = new
NamaKelas(); .Namun, contoh penulisan polimorfisme nantinya seperti ini :
KelasInduk objek = new classTurunannya();
Berikut ini contoh sederhana polimorfisme dimana mula-mula
kita membuat kelas induk “Movie” beberapa atribut dan method :
public class Movie {
private String judul;
private int tahun;
private String negara;
public void negara() {
System.out.println("Default Negara");
}
}
Selanjutnya kita membuat kelas turunan yaitu “Starwars” yang
berinduk ke kelas “Movie”, pada kelas ini kita membuat method yang sama seperti
yang ada pada kelas “Movie” namun isinya berbeda :
package sebagai.contoh;
public class Starwars extends Movie{
public void negara() {
System.out.println("Amerika");
}
}
Lalu kita membuat kelas “Main” yang digunakan sebagai
pemanggil seperti berikut :
package sebagai.contoh;
public class Main {
public static void main(String[] args) {
Movie m = new Starwars();
m.negara();
}
}
Pada kelas “Main” diatas, ketika kita membuat objek “m” maka
kita memanggil kelas “Movie”. Namun pada tulisan setelah “new”, yang seharusnya
kita tulis “Movie” juga maka kita ubah menjadi “Starwars”. Maka nantinya
walaupun yang dipanggilnya adalah “Movie”, namun yang akan diakses adalah
“Starwars” sehingga yang akan muncul adalah value yang ada di “Starwars” yaitu "Amerika"-bukan value yang ada di
Movie yaitu "Default Negara”-.
Itulah
beberapa hal yang saya pelajari secara mandiri hari ini, semoga Allah
menjadikan kita orang yang senantiasa bersungguh-sungguh dalam menuntut
ilmu...Aamiin
EmoticonEmoticon