26
Abstract Class & Interface

4 abstract class, interface

Embed Size (px)

DESCRIPTION

Materi Kuliah Pemrograman Beorientasi Object (PBO) - Teknik Informatika Universitas Bengkulu @2013/2014 - Endina Putri Purwandari, S.T., M.Kom - by:akachopa [ www.akachopa.com ]

Citation preview

Page 1: 4 abstract class, interface

Abstract Class & Interface

Page 2: 4 abstract class, interface

Konsep Penting

Abstract class Abstract method Interface Implements Final Static Exception

Page 3: 4 abstract class, interface

Contoh Polimorfisme

Lihat contoh program yang disediakan pada polimorfisme.

Page 4: 4 abstract class, interface

Method getArea() pada Shape Apa yang terjadi jika: public class TestShape { public static void main(String[] args) { // Constructing a Shape instance poses problem!

Shape s3 = new Shape("green"); System.out.println(s3); System.out.println("Area is " + s3.getArea());

} } Method getArea() akan bermasalah jika shapenya belum diketahui bentuk apa. Untuk mengatasi masalah ini, kita buat method getArea() sebagai abstract. abstract public double getArea();

Page 5: 4 abstract class, interface

Rewrite Shape as abstract

Page 6: 4 abstract class, interface

Abstract Class

Pada pewarisan, jika super-kelas mempunyai method yang harus di override oleh sub-kelasnya, maka class dan method tersebut kita buat sebagai abstract.

Page 7: 4 abstract class, interface

Abstract Class Sebagai contoh, kita akan membuat

superclass bernama Makhluk Hidup. Class ini mempunyai method tertentu seperti bernapas, makan, tidur, dan berjalan. Akan tetapi, ada beberapa method di dalam superclass yang sifatnya tidak dapat digeneralisasi. Kita ambil contoh, method berjalan.

Tidak semua makhluk hidup berjalan dalam cara yang sama. Kita manusia berjalan dengan dua kaki, dimana kehidupan lainnya seperti anjing berjalan dengan empat kaki.

Page 8: 4 abstract class, interface

Makhluk Hidup

Hewan Manusia

Anjing Ayam

Page 9: 4 abstract class, interface

Abstract Method

Diawali dengan kata abstract. Tidak ada implementasi. Langsung diakhiri oleh semicolon (;). Bertujuan agar di sub-kelasnya di

override. Contoh:

Page 10: 4 abstract class, interface

Abstract Class Diawali dengan kata abstract. Tidak dapat di instantiate. Namun sub-tipe tetap berlaku sehingga

polimorfisme tetap berlaku. Hanya abstract class yang dapat memiliki

abstract method. Abstract class dapat juga mempunyai method

yang tidak abstract. Abstract class memaksa sub-kelas utk

override abstract method. Jika tidak, maka sub-kelas harus juga bertipe abstract.

Page 11: 4 abstract class, interface

Abstract Class

Jika sub-kelas tidak meng-override abstract method, pasti akan muncul error, contoh:

Page 12: 4 abstract class, interface
Page 13: 4 abstract class, interface

Contoh

Contoh class pd Java API.

Page 14: 4 abstract class, interface

Catatan

Method abstract tidak dapat dideklarasi final. Kenapa?

Method abstract tidak dapat dibuat dengan akses private. Kenapa?

Page 15: 4 abstract class, interface

Interface

Interface: cara standar dalam menetapkan sifat-sifat umum dari class.

Interface juga bersifat polimorfisme. Interface digunakan untuk mengatasi

kemiripan-kemiripan pada kelas yang tidak berhubungan.

Page 16: 4 abstract class, interface

Interface

Anggaplah ada class Garis dan BilanganBulat. Kedua kelas mempunyai perlakuan untuk membandingkan 2 buah object garis atau 2 buah object bilangan bulat.

Karena kemiripannya, kita dapat membuat suatu interface Pembanding yang berisi method signature (tanpa implementasi) berkaitan dengan perbandingan 2 objek.

Page 17: 4 abstract class, interface

Interface Diawali dengan kata kunci interface, bukan

class. Method pada interface adalah abstract

karena tidak memerlukan implementasi. (namun tanpa keyword abstract)

Interface tidak mengandung method constructor.

Semua method berakses public. Kata kunci public tidak harus dideklarasikan.

Field secara otomatis menjadi public static final.

Page 18: 4 abstract class, interface
Page 19: 4 abstract class, interface

Contoh

Contoh pd Java API. Interface ActionListener

Page 20: 4 abstract class, interface

Final Kata kunci final jika digunakan pada method

maka method tersebut tidak dapat di override. Contoh pada class String.

Page 21: 4 abstract class, interface

Static

Jika method dideklarasi static, pemanggilan method di luar dari kelas harus memasukkan nama kelasnya juga.

Contoh:

Page 22: 4 abstract class, interface

Exception Exception: pengecualian Exception: suatu peristiwa yang muncul sewaktu

eksekusi program, yang mengganggu jalannya instruksi normal pada program.

Cara handle: ◦ Blok try-catch-finally ◦ Throws exception pada class

Page 23: 4 abstract class, interface
Page 24: 4 abstract class, interface
Page 25: 4 abstract class, interface

Contoh program yg dapat menimbulkan Exception Jika pada class BilanganBulat pd project garis-

bulat kita tambahkan method bagi, seperti ini: public double bagi(int y) { double z = 0; z = x / y; return z; }

Maka akan dapat menghasilkan exception jika nilai y yang dimasukkan adalah 0.

Page 26: 4 abstract class, interface

Cara antisipasi exception Buat blok try-catch:

public double bagi(int y) { double z = 0; try{ z = x / y; } catch (Exception e){ System.out.println("Masukkan nilai y yang bukan 0");

} return z; }