Pemrograman Berorientasi Objek 1 KELAS INNER KELAS ABSTRACT
Pemrograman Berorientasi Objek 1 KELAS INNER, KELAS ABSTRACT, DAN INTERFACE
INNER KELAS � Class yang dideklarasikan di dalam class Outer class � Pemrograman Berorientasi Objek 1 class X { … [modifier akses ] class Y { …. } … } Inner class Menghasilkan dua file *. class, yaitu Outer. class dan Outer$Inner. class X$Y. class
Inner kelas � � � Pemrograman Berorientasi Objek 1 Inner class merupakan bagian dari kelas, maka diperlakukan seperti member class lainnya Inner dapat mengakses semua member dari outer class, begitu juga sebaliknya Inner class digunakan selayaknya class normal, tapi inner class ini dapat digunakan di luar outer classnya tergantung modifier aksesnya.
Pemrograman Berorientasi Objek 1 Contoh Inner kelas class Buku { private int nomor; private String judul; class Bab { private int no. Bab; public String get. Bab() { return "nomor buku: "+nomor+", judul buku: "+judul +", nomor Bab: "+no. Bab; } } private Bab bab = new Bab(); public void set. Bab(int nomor, String judul, int no. Bab ) { this. nomor = nomor; this. judul = judul; bab. no. Bab = no. Bab; } public void cetak(){ System. out. println(bab. get. Bab()); } }
Pemrograman Berorientasi Objek 1 Contoh Inner kelas class Demo. Buku { public static void main(String[] args) { Buku buku = new Buku(); buku. set. Bab(10, ”PBO 1”, 6) buku. cetak(); } }
ABSTRACT CLASS � � � Pemrograman Berorientasi Objek 1 Suatu kelas yang dinyatakan abstract yang umumnya memiliki satu atau lebih abstract method Abstract method adalah suatu method yang belum memiliki implementasi dan menggunakan modifier abstract. Abstract class biasanya dijadikan parent atau super class dari kelas-kelas yang dapat membuat object. (tidak dapat membuat object dari abstrak class)
Pemrograman Berorientasi Objek 1 Analogi Kelas yang Abstract � Suatu kelas dapat diinstansiasi menjadi objek, misal kelas Dosen dapat diinstansiasi menjadi wilis, bayu, lina, namun tidak mungkin dapat menginstansiasi kelas Mahluk. Hidup, kelas Hewan, dan kelas Manusia, sebab kelas tersebut terlalu umum (abstract), kelas seperti inilah yang disebut kelas abstract. Dibutuhkan kelas turunan yang lebih khusus. Dosen wilis bayu lina Makhluk. Hidup Hewan
Pemrograman Berorientasi Objek 1 Analogi Method yang Abstract � Bila kelas Mahluk. Hidup mempunyai method bernafas, maka tidak dapat ditentukan cara suatu mahluk hidup tersebut bernafas (dengan paru-paru, insang, atau stomata), method seperti inilah yang disebut method abstract. Dibutuhkan kelas turunan yang khusus dan method override dari method yang abstract
Contoh Abstract Class Pemrograman Berorientasi Objek 1 abstract class A { abstract public void method 2(); //method konkrit yg memiliki implementasi public void method 1() { System. out. println(”Method konkrit dari class A”); } } class B extends A { public void method 2() { System. out. println(”Method abstrak yang sudah menjadi konkrit dalam class B”); } } class Demo. Abstrak { public static void main(String[] args) { B ob = new B(); ob. method 1(); ob. method 2(); } }
INTERFACE � Pemrograman Berorientasi Objek 1 kelas yang berisi method-method tanpa implementasi, namun tanpa modifier abstract, apabila suatu interface memiliki atribut, maka atributnya akan berlaku sebagai konstanta (static final).
Pemrograman Berorientasi Objek 1 Analogi Interface � � Interface dapat dianalogikan sebagai kontrak yang dapat dipakai oleh setiap kelas. Dengan demikian untuk membuat objek seorang budi bekerja sebagai dosen, harus dibuat kelas yang merupakan turunan kelas manusia yang meng-implementasikan interface dosen.
Pemrograman Berorientasi Objek 1 Deklarasi Interface Bentuk umum deklarasi: [modifier] interface Nama. Interface { // deklarasi konstanta // deklarasi method } Catatan : modifier static tidak boleh digunakan dalam interface
Pemrograman Berorientasi Objek 1 Implementasi Interface Bentuk umum implementasi : [modifier] class Nama. Kelas implements Nama. Interface { // penggunaan konstanta // implementasi method }
Interface vs Class komponen definisi kandungan informasi instansiasi interface daftar deklarasi method isi/implementasi semua methodnya berada di luar interface ini tidak boleh Pemrograman Berorientasi Objek 1 class model objek mendefinisikan attribute dan method secara rinci dan konkret boleh
Pemrograman Berorientasi Objek 1 Interface vs Inheritance � Inheritance adalah proses pewarisan attribute dan method dari satu kelas super kepada satu/lebih subkelas. Syntax kelas yang menggunakan lebih dari satu interface : [modifier] class Nama. Kelas implements Nama. Interface 1, Nama. Interface 2, … { //interface. Body }
Pemrograman Berorientasi Objek 1 Interface vs Abstract Class komponen interface abstract class attribute hanya berupa konstanta bebas memilki tipe data apa saja method berupa deklarasi boleh deklarasi, boleh berupa method lengkap syntax seluruhnya abstract (berupa deklarasi) sebagian abstract
Pemrograman Berorientasi Objek 1 Contoh Interface interface Queue { public void push(int e); public int pop(); public void print. Q(); }
public class Fifo implements Queue { int bucket[]; int max; int head; public Fifo() { bucket = new int[10]; max = 10; head = -1; } public Fifo(int size) { bucket = new int[size]; max = size; head = -1; } Pemrograman Berorientasi Objek 1 public void push(int e) { if ( head == max - 1) { System. out. println("Queue sudah penuh!"); } else { for (int i = head; i >= 0; i--) { bucket[i+1] = bucket[i]; } bucket[0] = e; head++; System. out. println("Nilai " + e + " dimasukkan ke queue"); } }
public class Lifo implements Queue { int bucket[]; int max; int head; public Lifo() { bucket = new int[10]; max = 10; head = -1; } public Lifo(int size) { bucket = new int[size]; max = size; head = -1; } public void push(int e) { if (head == max - 1) { System. out. println("Queue sudah penuh!"); } else { bucket[++head] = e; System. out. println("Nilai " + e + " dimasukkan ke queue"); } } Pemrograman Berorientasi Objek 1 public int pop() { if (head == -1) { System. out. println("Queue sudah kosong!"); return -1; } else { return bucket[head--]; } } public void print. Q() { System. out. print("Isi queue: "); for (int i = 0; i <= head; i++) { System. out. print(bucket[i] + " "); } System. out. println(); } }
public class Test. Fifo { public static void main(String argv[]) { Fifo q = new Fifo(4); q. print. Q(); q. push(1); q. push(2); q. push(3); q. push(4); q. push(5); q. print. Q(); System. out. println(q. pop()); Pemrograman Berorientasi Objek 1 q. print. Q(); q. push(1); q. push(2); System. out. println(q. pop()); q. push(3); q. print. Q(); } }
Pemrograman Berorientasi Objek 1 public class Test. Lifo { public static void main(String argv[]) { Lifo q = new Lifo(4); q. print. Q(); q. push(1); q. push(2); q. push(3); q. push(4); q. push(5); q. print. Q(); System. out. println(q. pop()); q. print. Q(); q. push(1); q. push(2); System. out. println(q. pop()); q. push(3); q. print. Q(); } }
Pemrograman Berorientasi Objek 1 Contoh lain: Abstract Class Hewan. java abstract class Hewan { protected String nama; protected int jum. Kaki; protected boolean bisa. Terbang = false; public Hewan(String nama, int kaki, boolean terbang) { this. nama = nama; jum. Kaki = kaki; bisa. Terbang = terbang; } public abstract void bersuara(); public static void makan() { System. out. println("nyam, nyam"); } public void is. Hewan() { System. out. println("nama : "+nama); System. out. println("jumlah kaki : "+jum. Kaki); System. out. println("bisa terbang : "+bisa. Terbang); }
Pemrograman Berorientasi Objek 1 Perkutut. java class Perkutut extends Hewan { public Perkutut() { super("perkutut", 2, true); } public void bersuara() { System. out. println("ncuit, cuit"); } public static void main(String[] args) { Perkutut p = new Perkutut(); p. is. Hewan(); p. bersuara(); } } Output :
Pemrograman Berorientasi Objek 1 Sapi. java class Sapi extends Hewan { public Sapi() { super("sapi", 4, false); } public void bersuara() { System. out. println("nemoh…, emoh. . "); } public static void main(String[] args) { Sapi s = new Sapi(); s. is. Hewan(); s. bersuara(); } } Output :
Contoh lain: Interface Pemrograman Berorientasi Objek 1 Manusia. java interface Manusia { public void menyanyi(); public void ketawa(); } Sponge. Bob. java class Sponge. Bob extends Hewan implements Manusia { public Sponge. Bob() { super("sponge bob", 2, false); } public void bersuara() { System. out. println("nhallo patrict. . "); } public void menyanyi() { System. out. println("nye, wik, wik"); } public void ketawa() { System. out. println("kek, kek"); } public static void makan() { System. out. println("uenak tenan. . "); } public void makan 2() { super. makan(); }
Lanjutan Sponge. Bob. java public static void main(String[] args) { Sponge. Bob s= new Sponge. Bob(); s. is. Hewan(); s. bersuara(); s. menyanyi(); s. ketawa(); s. makan 2(); Hewan. makan(); } } Output : Pemrograman Berorientasi Objek 1
- Slides: 26