26
KELAS INNER, KELAS ABSTRACT, DAN INTERFACE Pemrograman Berorientasi Objek 1

KELAS INNER, KELAS ABSTRACT, DAN INTERFACE

  • Upload
    arella

  • View
    79

  • Download
    0

Embed Size (px)

DESCRIPTION

Pemrograman Berorientasi Objek 1. KELAS INNER, KELAS ABSTRACT, DAN INTERFACE. Pemrograman Berorientasi Objek 1. INNER KELAS. Class yang dideklarasikan di dalam class class X { … [ modifier akses ] class Y { …. } … } - PowerPoint PPT Presentation

Citation preview

Page 1: KELAS INNER, KELAS ABSTRACT, DAN INTERFACE

KELAS INNER, KELAS ABSTRACT, DAN INTERFACE

Pemrograman Berorientasi Objek 1

Page 2: KELAS INNER, KELAS ABSTRACT, DAN INTERFACE

Class yang dideklarasikan di dalam class

class X { …

[modifier akses ] class Y { ….}

… }

Menghasilkan dua file *.class, yaitu Outer.class dan Outer$Inner.class

INNER KELASPemrograman Berorientasi Objek 1

Outer class

Inner class

X.classX$Y.class

Page 3: KELAS INNER, KELAS ABSTRACT, DAN INTERFACE

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.

Inner kelas

Page 4: KELAS INNER, KELAS ABSTRACT, DAN INTERFACE

Pemrograman Berorientasi Objek 1

class Buku {private int nomor;

private String judul;class Bab {

private int noBab;public String getBab() { return "nomor buku: "+nomor+", judul buku:

"+judul+", nomor Bab: "+noBab;

}}private Bab bab = new Bab();public void setBab(int nomor,String judul,int noBab ) {

this.nomor = nomor;this.judul = judul;bab.noBab = noBab;

}public void cetak(){

System.out.println(bab.getBab());}

}

Contoh Inner kelas

Page 5: KELAS INNER, KELAS ABSTRACT, DAN INTERFACE

Pemrograman Berorientasi Objek 1

class DemoBuku {public static void main(String[] args) {

Buku buku = new Buku();

buku.setBab(10,”PBO 1”,6) buku.cetak();

}}

Contoh Inner kelas

Page 6: KELAS INNER, KELAS ABSTRACT, DAN INTERFACE

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)

ABSTRACT CLASS

Page 7: KELAS INNER, KELAS ABSTRACT, DAN INTERFACE

Pemrograman Berorientasi Objek 1

Suatu kelas dapat diinstansiasi menjadi objek, misal kelas Dosen dapat diinstansiasi menjadi wilis, bayu, lina, namun tidak mungkin dapat menginstansiasi kelas MahlukHidup, kelas Hewan, dan kelas Manusia, sebab kelas tersebut terlalu umum (abstract), kelas seperti inilah yang disebut kelas abstract. Dibutuhkan kelas turunan yang lebih khusus.

Analogi Kelas yang Abstract

Dosen wilis

bayu

lina

MakhlukHidup Hewan

Page 8: KELAS INNER, KELAS ABSTRACT, DAN INTERFACE

Pemrograman Berorientasi Objek 1

Bila kelas MahlukHidup 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

Analogi Method yang Abstract

Page 9: KELAS INNER, KELAS ABSTRACT, DAN INTERFACE

Pemrograman Berorientasi Objek 1

abstract class A {abstract public void method2();//method konkrit yg memiliki implementasipublic void method1() {

System.out.println(”Method konkrit dari class A”);}

}class B extends A {

public void method2() {System.out.println(”Method abstrak yang sudah

menjadi konkrit dalam class B”);}

}class DemoAbstrak {

public static void main(String[] args) {B ob = new B();ob.method1();ob.method2();

}}

Contoh Abstract Class

Page 10: KELAS INNER, KELAS ABSTRACT, DAN 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).

INTERFACE

Page 11: KELAS INNER, KELAS ABSTRACT, DAN INTERFACE

Pemrograman Berorientasi Objek 1

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.

Analogi Interface

Page 12: KELAS INNER, KELAS ABSTRACT, DAN INTERFACE

Pemrograman Berorientasi Objek 1

Bentuk umum deklarasi:[modifier] interface NamaInterface { // deklarasi konstanta // deklarasi method}

Catatan : modifier static tidak boleh digunakan dalam interface

Deklarasi Interface

Page 13: KELAS INNER, KELAS ABSTRACT, DAN INTERFACE

Pemrograman Berorientasi Objek 1

Bentuk umum implementasi :[modifier] class NamaKelas implements NamaInterface { // penggunaan konstanta // implementasi method}

Implementasi Interface

Page 14: KELAS INNER, KELAS ABSTRACT, DAN INTERFACE

Pemrograman Berorientasi Objek 1

Interface vs Class komponen interface class

definisi daftar deklarasi method

model objek

kandunganinformasi

isi/implementasi semua methodnya berada di luar interface ini

mendefinisikan attribute dan method secara rinci dan konkret

instansiasi tidak boleh boleh

Page 15: KELAS INNER, KELAS ABSTRACT, DAN INTERFACE

Pemrograman Berorientasi Objek 1

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 NamaKelas implements NamaInterface1, NamaInterface2, … { //interfaceBody}

Interface vs Inheritance

Page 16: KELAS INNER, KELAS ABSTRACT, DAN INTERFACE

Pemrograman Berorientasi Objek 1

Interface vs Abstract Classkomponen 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

Page 17: KELAS INNER, KELAS ABSTRACT, DAN INTERFACE

Pemrograman Berorientasi Objek 1

interface Queue { public void push(int e);

public int pop();

public void printQ();}

Contoh Interface

Page 18: KELAS INNER, KELAS ABSTRACT, DAN INTERFACE

Pemrograman Berorientasi Objek 1public 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; }

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"); } }

Page 19: KELAS INNER, KELAS ABSTRACT, DAN INTERFACE

Pemrograman Berorientasi Objek 1

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"); } }

public int pop() { if (head == -1) { System.out.println("Queue sudah

kosong!"); return -1; } else { return bucket[head--]; } }

public void printQ() { System.out.print("Isi queue: "); for (int i = 0; i <= head; i++) { System.out.print(bucket[i] + " "); } System.out.println(); }}

Page 20: KELAS INNER, KELAS ABSTRACT, DAN INTERFACE

Pemrograman Berorientasi Objek 1public class TestFifo {

public static void main(String argv[]) {

Fifo q = new Fifo(4); q.printQ(); q.push(1); q.push(2); q.push(3); q.push(4); q.push(5); q.printQ(); System.out.println(q.pop()); System.out.println(q.pop()); System.out.println(q.pop()); System.out.println(q.pop()); System.out.println(q.pop());

q.printQ(); q.push(1); q.push(2); System.out.println(q.pop()); q.push(3); q.printQ(); }}

Page 21: KELAS INNER, KELAS ABSTRACT, DAN INTERFACE

Pemrograman Berorientasi Objek 1

public class TestLifo { public static void

main(String argv[]) { Lifo q = new Lifo(4); q.printQ(); q.push(1); q.push(2); q.push(3); q.push(4); q.push(5); q.printQ();

System.out.println(q.pop()); System.out.println(q.pop()); System.out.println(q.pop()); System.out.println(q.pop()); System.out.println(q.pop()); q.printQ(); q.push(1); q.push(2); System.out.println(q.pop()); q.push(3); q.printQ(); }}

Page 22: KELAS INNER, KELAS ABSTRACT, DAN INTERFACE

Pemrograman Berorientasi Objek 1

abstract class Hewan { protected String nama; protected int jumKaki; protected boolean bisaTerbang = false; public Hewan(String nama, int kaki, boolean terbang) {

this.nama = nama; jumKaki = kaki; bisaTerbang = terbang; } public abstract void bersuara(); public static void makan() { System.out.println("nyam, nyam, nyam"); } public void isHewan() { System.out.println("nama : "+nama); System.out.println("jumlah kaki : "+jumKaki); System.out.println("bisa terbang : "+bisaTerbang);

}}

Contoh lain: Abstract ClassHewan.java

Page 23: KELAS INNER, KELAS ABSTRACT, DAN INTERFACE

Pemrograman Berorientasi Objek 1

class Perkutut extends Hewan { public Perkutut() { super("perkutut",2,true); } public void bersuara() { System.out.println("\ncuit, cuit, cuit"); } public static void main(String[] args) { Perkutut p = new Perkutut(); p.isHewan(); p.bersuara(); }}

Output :

Perkutut.java

Page 24: KELAS INNER, KELAS ABSTRACT, DAN INTERFACE

Pemrograman Berorientasi Objek 1

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.isHewan(); s.bersuara(); }}

Output :

Sapi.java

Page 25: KELAS INNER, KELAS ABSTRACT, DAN INTERFACE

Pemrograman Berorientasi Objek 1

interface Manusia { public void menyanyi(); public void ketawa();}

SpongeBob.javaclass SpongeBob extends Hewan implements Manusia { public SpongeBob() { super("sponge bob", 2, false);} public void bersuara() { System.out.println("\nhallo patrict..");} public void menyanyi() { System.out.println("nye, nye, nye, wik, wik, wik");} public void ketawa() { System.out.println("kek, kek, kek"); } public static void makan() { System.out.println("uenak tenan.."); } public void makan2() { super.makan(); }

Contoh lain: Interface

Manusia.java

Page 26: KELAS INNER, KELAS ABSTRACT, DAN INTERFACE

Pemrograman Berorientasi Objek 1

public static void main(String[] args) { SpongeBob s= new SpongeBob(); s.isHewan(); s.bersuara(); s.menyanyi(); s.ketawa(); s.makan2(); Hewan.makan(); makan(); }}

Output :

Lanjutan SpongeBob.java