Abstract and Interfaces

Download Report

Transcript Abstract and Interfaces

Abstract and Interfaces
Matakuliah
Pertemuan
Tahun
Versi
: T0984 / Algoritma dan Metode Object Oriented Programming II
:6
: 2008
: 1/0
Learning Outcomes
Pada akhir pertemuan ini, diharapkan
mahasiswa akan mampu:
– Menunjukan perbedaan abtract class
dengan interfaces.
– Membuat sebuah method dari
abstract class
– Menerapkan penggunaan aplikasi
Interface dalam Java Programming
Bina Nusantara
Outline Materi
•
•
•
•
•
•
Abstract Class
Abstract Method
Contoh Abstract Class and Method
Interfaces.
Contoh Interfaces
Interface VS Abstract Class
Bina Nusantara
Abstract Class
• Mendeklarasikan karakteristik yang umum dari
subclass.
• Dideklarasi secara abstrak.
• Tidak dapat dibuat objeknya dengan operator
new.
• Hanya digunakan sebagai superclass dari kelaskelas lainnya dan berupa bentuk abstrak.
• Dideklarasi dengan keyword abstract.
• Superclass harus kongkrit agar bisa di abstrakkan ke subclass.
Bina Nusantara
Abstact Class ( lanjutan … )
• Sebuah template atau design untuk subclass
dibawahnya.
• Menyediakan fungsi yang abstrak juga.( abstract
class )
• Fungsi di override di subclass.
• Sebuah objek harus dapat
mengimplementasikan semua abstract method
yang ada di abstract class.
• Abstract Class sebagai tipe.
Shape[] objs = new Shape[10];
Bina Nusantara
Abstract Method
•
•
•
•
•
•
•
Dummy Code Method atau Prototype Method.
Dideklarasikan di dalam Abstract Class.
Tidak ada implementasi.
Tidak mempunyai isi koding didalam fungsinya.
Diakhiri langsung dengan titik koma.
Method yang harus di-override di subclass-nya.
Dideklarasi dengan keyword abstract.
Bina Nusantara
Contoh Abstract Class and Method
•
Contoh :
Waktu deklarasi Abstract class dan Method-nya
abstract class Shape {
public String color;
public Shape() {}
public void setColor(String c) {
color = c;
}
public String getColor() {
return color;
}
abstract public double area();
}
Bina Nusantara
Deklarasi abstract class
Deklarasi abstract Method
Contoh Abstract Class and Method ( lanjutan …)
• Pada saat digunakan di Subclass
public class Point extends Shape {
static int x, y;
public Point() {
x = 0;
y = 0;
}
public double area() {
return 0;
}
public double perimeter() {
return 0;
}
public static void print() {
System.out.println("point: " + x + "," + y);
}
public static void main(String args[]) {
Point p = new Point();
p.print();
}
}
Bina Nusantara
Class Point merupakan turunan dari
Class Shape yang abstrak
Fungsi area() yang di-override dari
superclassnya.
Contoh Abstract Class and Method ( lanjutan …)
• Outputnya
Bina Nusantara
Interfaces
• Hanya terdiri dari konstanta dan abstract
method.
• Tidak dapat dibuat objeknya dengan operator
new.
• Membuat satu subclass memiliki lebih dari satu
superclass (solusi dari multiple inheritance)
• Tidak diturunkan namun di implementasi.
• Dideklarasi dengan keyword interface.
• Pada
subclass
menggunakan
keyword
implements.
Bina Nusantara
Interfaces ( lanjutan … )
• Setiap interfaces di-compile ke dalam baris bytecode,
seperti class biasa.
• Semua metode yang dideklarasikan di interface harus dioverride oleh class yang mengimplementasikannya.
• Bentuk interfaces :
modifier interface Nama_Interface{
/** Deklarasi konstanta **/
/** Abstract Method **/
}
Contoh :
public interface Tes{
public static final int k =1;
public abstract void p();
}
Bina Nusantara
public interface Tes{
int k =1;
void p();
}
Contoh Interfaces
• Contoh :
Waktu deklarasi interfaces
interface Shape {
public double area();
public double volume();
}
Bina Nusantara
Deklarasi kelas interface
Abstract Method
Contoh Interfaces ( lanjutan … )
• Pada saat digunakan di Subclass
public class Point implements Shape {
Menggunakan implement jika ingin memakai
kelas interface dari Shape
static int x, y;
public Point() {
x = 0;
y = 0;
}
public double area() {
return 0;
}
2 Fungsi yang ada di kelas interface Shape
public double volume() {
wajib di-override di subclass Point
return 0;
}
public static void print() {
System.out.println("point: " + x + "," + y);
}
public static void main(String args[]) {
Point p = new Point();
p.print();
}
}
Bina Nusantara
Contoh Interfaces ( lanjutan … )
• Outputnya
Bina Nusantara
Interface VS Abstract Class
• Perbedaan interface dan abstract class cukup terlihat dari
pemakaiannya. interface itu diimplementasikan dan
abstract class itu diturunkan (diwariskan).
Bina Nusantara
Variables
Constructors
Methods
Abstract
Bebas, tidak ada
restiction
Konstruktor dapat
melalui subclass
konstruktor.
Tidak dapat dibuat
Bebas, tidak ada
no restiction
Interfaces
Semua variable
dideklarasi
public static final
Tidak ada konstruktor.
Tidak dapat dibuat
Semua fungsi
dideklarasi
public abstract
Interface VS Abstract Class ( lanjutan … )
• Java hanya mengijinkan single inheritance untuk
class, tetapi dapat multiple untuk interfaces.
public class NewClass extends BaseClass implements Interface1, …, InterfacesN {
// ….
}
• Sebuah interfaces dapat diturunkan dari kelas
lainnya dengan menggunakan keyword extends.
public interface NewClass extends Interface1, …, InterfacesN {
// konstanta dan abstract method
}
Bina Nusantara
Referensi
• Introduction to Java Programming. 7ed. Liang. 2009.
Chapter 11, hal 389
• Interfaces VS Abstract Class




Bina Nusantara
http://www.javaworld.com/javaworld/javaqa/2001-04/03-qa-0420-abstract.html
http://www.javabeginner.com/abstract-class-interface.htm
http://mindprod.com/jgloss/interfacevsabstract.html
http://geekswithblogs.net/mahesh/archive/2006/07/05/84120.aspx