• Tidak ada hasil yang ditemukan

KELAS INNER, KELAS ABSTRACT, DAN INTERFACE

N/A
N/A
Protected

Academic year: 2018

Membagikan "KELAS INNER, KELAS ABSTRACT, DAN INTERFACE"

Copied!
26
0
0

Teks penuh

(1)

KELAS INNER, KELAS

(2)

Class yang dideklarasikan di dalam class

class X {

[

modifer akses ]

class Y {

….

}

}

Menghasilkan dua fle *.class, yaitu

Outer.class

dan

Outer$Inner.class

INNER KELAS

Berorientasi Objek 1

Outer class

Inner class

(3)

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 modifer aksesnya

.

(4)

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

}

(5)

Berorientasi Objek 1

class DemoBuku {

public static void main(String[] args) { Buku buku = new Buku();

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

} }

(6)

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

modifer abstract

.

Abstract class biasanya dijadikan parent

atau

super class

dari kelas-kelas yang

dapat membuat object. (tidak dapat

membuat object dari abstrak class)

(7)

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

(8)

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

(9)

Berorientasi Objek 1

abstract class A {

abstract public void method2();

//method konkrit yg memiliki implementasi

public 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();

}

}

(10)

Berorientasi Objek 1

kelas yang

berisi method-method

tanpa implementasi

, namun

tanpa

modifer abstract

, apabila suatu

interface memiliki atribut, maka

atributnya akan berlaku sebagai

konstanta

(static fnal).

(11)

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.

(12)

Berorientasi Objek 1

Bentuk umum deklarasi:

[modifer] interface NamaInterface {

// deklarasi konstanta

// deklarasi method

}

Catatan : modifer static tidak boleh

digunakan dalam interface

(13)

Berorientasi Objek 1

Bentuk umum implementasi :

[modifer] class NamaKelas implements

NamaInterface {

// penggunaan konstanta

// implementasi method

}

(14)

Berorientasi Objek 1

Interface vs Class

komponen

interface

class

definisi

daftar deklarasi

method

model objek

kandungan

informasi

isi/implementasi

semua

methodnya

berada di luar

interface ini

mendefinisikan

attribute dan

method secara

rinci dan

konkret

(15)

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 :

[modifer] class NamaKelas implements

NamaInterface1, NamaInterface2, … {

//interfaceBody

}

(16)

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)

(17)

Berorientasi Objek 1

interface

Queue {

public void push(int e);

public int pop();

public void printQ();

}

(18)

Berorientasi Objek 1

public class Fifo implements Queue { + " dimasukkan ke queue"); }

(19)

Berorientasi Objek 1

public class Lifo implements Queue { int bucket[]; dimasukkan ke queue");

(20)

Berorientasi Objek 1

public class TestFifo {

(21)

Berorientasi Objek 1

public class TestLifo {

public static void

(22)

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 Class

(23)

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 :

(24)

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 :

(25)

Berorientasi Objek 1

interface Manusia {

public void menyanyi(); public void ketawa(); }

SpongeBob.java

class SpongeBob extends Hewan implements Manusia { public SpongeBob() {

super("sponge bob", 2, false);} public void bersuara() {

System.out.println("\nhallo patrict..");} public void menyanyi() {

Contoh lain: Interface

(26)

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();

} }

Referensi

Dokumen terkait

Dari hasil evaluasi serta temuan-temuan yang kami peroleh selama pelaksanaan kegiatan ini, dapat kami simpulkan bahwa program Rubrik Teknika atas kerjasam antara

Keberhasilan penerapan model pembelajaran TAI berbantuan media kartu bergambar pada siswa, juga didukung oleh penelitian yang dilakukan oleh Asriningsih (2014), jurusan Pendidikan

[r]

Dengan pendekatan balanced scorecard manajemen dapat melakukan suatu simulasi dari keempat perspektif (pelanggan dapat melihat bahwa kinerja PT.X yang lebih baik)

Model kompetensi ini nantinya dapat digunakan sebagai acuan manajemen sumber daya manusia pada Kepala Unit Departemen Sales dalam proses seleksi, pelatihan

Berangkat dari permasalahan di atas, penulis merumuskan masalah dalam penulisan tesis ini; (1) Bagaimana cara mendesain bahan ajar dengan pengembangan

[r]

Tujuan penelitian ini adalah untuk mengetahui gambaran regulasi emosi pecandu game online. Penelitian ini menggunakan metode kualitatif dengan pendekatan