• Tidak ada hasil yang ditemukan

Pemrograman Berorientasi Objek 2

N/A
N/A
Protected

Academic year: 2021

Membagikan "Pemrograman Berorientasi Objek 2"

Copied!
90
0
0

Teks penuh

(1)

Kode MK : MI Revisi Terakhir :

Bahan Ajar

Pemrograman Berorientasi Objek 2

Program Studi

Manajemen Informatika

Jenjang D3

2103T 05/09/13

(2)

Review konsep pemrograman

berorintasi objek

Encapsulation

Enheritance

Polimorphism

2

Sesi 1

(3)

Mampu menjelaskan pengertian

encapsulation

Mampu m

embuat class

Mampu menjelaskan pengertian inheritance

Mampu menjelaskan pengertian

polimorphism

(4)

Encapsulation

 Encapsulation adalah salah satu dari empat

konsep PBO: encapsulation, inheritance, polymorphism, dan abstraction

 Encapsulation adalah teknik pembuatan filed-field

privat dalam kelas dan menyediakan akses ke field melalui metode publik. Jika filed dideklarasikan

sebagai privat, filed ini tidak dapat diakses oleh

siapa pun di luar kelas, sehingga menyembunyikan field dalam kelas.

 Maka, enkapsulasi juga disebut sebagai

(5)

Encapsulation

 Manfaat utama dari enkapsulasi adalah

kemampuan untuk memodifikasi kode di kelas ini tanpa mengubah kode lain yang menggunakan

kode di kelas ini.

 Dengan fitur ini Encapsulation memberikan

rawatan, fleksibilitas dan ekstensibilatas untuk kode kita.

 Encapsulation terimplementasi kedalam kelas

(6)

Contoh Encapsulation

 Perhatikan class berikut:

public class EncapTest{ private String name; private int age;

public int getAge(){ return age;

}

public String getName(){ return name;

}

public void setAge(int newAge){ age = newAge;

}

public void setName(String newName){ name = newName;

} }

(7)

Contoh Encapsulation

 Metode public dipakai untuk mengakses

filed dalam kelas ini dari luar kelas ini.

 Biasanya, metode ini disebut sebagai getter

dan setter.

 Oleh karena itu setiap kelas yang ingin

mengakses variabel harus mengaksesnya melalui getter dan setter.

(8)

Contoh Encapsulation

Variabel dari kelas EncapTest dapat diakses dengan cara:

public class RunEncap{

public static void main(String args[]){ EncapTest encap = new EncapTest(); encap.setName("James"); encap.setAge(20); System.out.print("Name : " + encap.getName()+ " Age : "+ encap.getAge()); } }

(9)

Keuntungan Encapsulation

 Field dari kelas dapat dibuat read-only or

write-only

 Kelas mempunyai kendali penuh apa-apa yang

disimpan kedalam filednya

 User dari kelas tidak mengetahui bagaimana

kelas menyimpan datanya. Kelas dapat

mengubah tipe data atau field dan user dari

(10)

Pewarisan (Inheritance)

 Semua class dalam Java, termasuk class yang membangun Java

API, merupakan subclass dari superclass Object.

(11)

Pewarisan (inheritance)

Superclass

class yang letaknya di atas class tertentu di dalam hierarki.

Subclass

class yang letaknya di bawah class tertentu di dalam hierarki.

(12)

Pewarisan (inheritance)

Keuntungan penggunaan Inheritance dalam OOP :

Reusability

 Ketika behavior(method) dideklarasikan dalam superclass,

behavior tersebut otomatis diwariskan ke seluruh subclass

 Jadi, Anda dapat meng-enkode method hanya sekali dan method

tersebut dapat digunakan oleh seluruh subclass

 Sebuah subclass hanya perlu mengimplementasikan perbedaan

(13)

Pewarisan (inheritance)

Untuk menggunakan sebuah class, gunakan keyword extends.Untuk lebih jelasnya, mari buat class parent sederhana,

misalkan kita mempunyai class parent bernama Person.

public class Person {

protected String name; protected String address; /** * Default constructor */ public Person(){ System.out.println(“Inside Person:Constructor”); name = ""; address = ""; } . . . . }

(14)

Pewarisan (inheritance)

Sekarang, kita buat class lain bernama Student

Karena Student juga termasuk Person, kita putuskan untuk

meng-extend class Person, sehingga kita dapat mewariskan semua properti dan method yang telah ada di class Person.

Untuk itu, kita bisa menulis :

public class Student extends Person { public Student(){

System.out.println(“Inside Student:Constructor”); }

. . . . }

(15)

Pewarisan (inheritance)

Ketika sebuah object Student diinstansiasi, default constructor dari superclass Student dipanggil

secara implisit untuk melakukan inisialisasi seperlunya.

 Setelah itu, pernyataan di dalam constructor

(16)

Pewarisan (inheritance)

Untuk memperjelasnya, perhatikan kode

dibawah ini,

Dalam kode ini, kita membuat sebuah object

dari class Student. Hasil dari program

adalah:

public static void main( String[] args ){ Student anna = new Student();

}

Inside Person:Constructor Inside Student:Constructor

(17)

Pewarisan (inheritance)

(18)

Keyword “super”

 Sebuah subclass dapat juga memanggil secara eksplisit

sebuah constructor superclass yang ada diatasnya.

 Dapat dilakukan dengan menggunakan pemanggilan

constructor super.

 Pemanggilan constructor super didalam constructor

subclass akan mengakibatkan eksekusi dalam

constructor yang relevan dari superclass, berdasarkan passing argument-nya.

(19)

Keyword “super”

 Sebagai contoh, pada contoh sebelumnya yaitu

class Person dan Student, kita tunjukkan sebuah contoh pemanggilan constructor super.

 Tuliskan kode berikut untuk class Student

public Student(){

super( "SomeName", "SomeAddress" ); System.out.println("Inside

Student:Constructor"); }

(20)

Keyword “super”

Beberapa hal untuk diingat ketika menggunakan pemanggilan constructor super :

 Pemanggilan super() HARUS DIJALANKAN SESUAI DENGAN

STATEMENT PERTAMA DALAM SEBUAH CONSTRUCTOR.

 Pemanggilan super() hanya dapat digunakan di dalam definisi

constructor.

 Hal ini menjelaskan bahwa constructor this() dan pemanggilan

super() TIDAK DAPAT DIJALANKAN SECARA BERSAMAAN DI DALAM CONSTRUCTOR YANG SAMA.

(21)

Keyword “super”

Penggunaan lainnya dari super mengarah pada member dari superclass.

Sebagai contoh,

public Student() {

super.name = “somename”;

super.address = “some address”; }

(22)

Meng-override method

 Jika sebuah subclass menginginkan implementasi

yang berbeda terhadap method dari

superclassnya, maka salah satu caranya dapat dilakukan dengan meng-override method

bersangkutan.

 Sebuah subclass dapat meng-override method

superclassnya dengan menyediakan sebuah implementasi baru untuk method tersebut.

(23)

Contoh

Berikut ini merupakan implementasi dari method getName didalam superclass Person

public class Person { :

:

public String getName(){

System.out.println("Parent: getName"); return name;

} }

(24)

Contoh

Untuk meng-override method getName dari superclass Person,

di dalam subclass Student, kita tulis :

Sekarang, ketika kita memanggil method getName dari object

subclass Student, method getName yang di-override akan dipanggil, dan hasilnya akan menjadi,

public class Student extends Person{ :

:

public String getName(){

System.out.println("Student: getName"); return name; } : } Student: getName

(25)

Polymorphism

Polymorphism

Kemampuan sebuah variabel reference untuk merubah behavior sesuai dengan apa yang dipunyai object.

polymorphism membuat objek-objek yang berasal dari subclass yang berbeda, diperlakukan sebagai objek-objek dari satu

superclass. Hal ini terjadi ketika memilih method yang sesuai untuk diimplementasikan ke objek tertentu berdasarkan pada subclass yang memiliki method bersangkutan.

(26)

Polymorphism

 Pada contoh sebelumnya, kita diberikan parent class yaitu

Person dan subclassnya adalah Student, sekarang kita tambahkan subclass lainnya dari Person yaitu Employee

(27)

Polymorphism

Dalam Java, kita dapat membuat referensi dari suatu superclass ke object dari subclassnya. Sebagai contoh,

public static main( String[] args ) { Person ref;

Student studentObject = new Student(); Employee employeeObject = new Employee();

ref = studentObject; //titik referensi Person kepada // sebuah object Student

(28)

Polymorphism

misalnya, kita memiliki sebuah method getName dalam superclass Person. Dan kita meng-override method ini di kedua subclass yaitu Student dan Employee

public class Student {

public String getName(){

System.out.println(“Student Name:” + name); return name;

} }

public class Employee {

public String getName(){

System.out.println(“Employee Name:” + name); return name;

} }

(29)

Polymorphism

 Kembali ke method utama kita, ketika kita

mencoba memanggil method getName dari

referensi Person ref, method getName dari object Student akan dipanggil.

 Sekarang, jika kita memberi ref kepada object

Employee, maka method getName juga akan dipanggil

(30)

Polymorphism

public static main( String[] args ) { Person ref;

Student studentObject = new Student(); Employee employeeObject = new Employee();

ref = studentObject; //titik referensi Person kepada object Student

//getName dari class Student dipanggil

String temp=ref.getName(); System.out.println( temp );

ref = employeeObject; //titik referensi Person kepada object Employee

//getName dari class Employee dipanggil

String temp = ref.getName(); System.out.println( temp ); }

(31)

Polymorphism

 Contoh lain yang menggambarkan polymorphism

adalah ketika kita mencoba untuk passing reference kepada method

 jika kita memiliki sebuah method static

printInformation yang menerima referensi

Person sebagai parameter

public static printInformation( Person p ){ . . . .

(32)

Polymorphism

Sebenarnya kita dapat passing reference dari Employee dan Student kepada method

printInformation selama kedua class tersebut

merupakan subclass dari Person

public static main( String[] args ){

Student studentObject = new Student();

Employee employeeObject = new Employee();

printInformation( studentObject ); printInformation( employeeObject );

(33)

Casting Object

 Instance dari class juga dapat di-casting menjadi instance

dari class lain, dengan satu batasan ::

 Class asal dan tujuan harus direlasikan dalam inheritance, salah

satu class harus berupa subclass dari class lain.

 Casting object digunakan untuk mengkonversi nilai

primitif menuju tipe yang lebih besar, beberapa object tidak perlu mengalami casting secara explisit.

(34)

Casting Object

Gunakan sintaks berikut untuk casting

object,

(classname)object

classname - nama class tujuan

(35)

Contoh Casting Object

Berikut ini merupakan contoh proses casting sebuah instance dari class VicePresident ke instance dari class Employee.

VicePresident merupakan subclass dari class Employee dengan beberapa informasi tambahan.

Employee emp = new Employee();

VicePresident veep = new VicePresident(); emp = veep;

// casting explisit

(36)

Exception Handling

Pengertian ExceptionHirarki Kelas ExceptionPenanganan Exception

36

(37)

Mampu menjelaskan tentang eksepsi

Menggunakan perintah try-catch-finally

Menangani Exception pada program

(38)

Exception adalah kejadian yang muncul selama eksekusi

program dan dapat mengganggu alur normal program

 Exception dilempar oleh program atau lingkungan runtime,

dan dapat ditangkap atau ditangani.

Error mirip dengan exception tetapi error mengakibatkan

situasi serius atau situasi yang tidak dapat dikembalikan (un-recoverable), dan tidak dapat ditangkap untuk ditangani

38

Pengertian Exception

Contoh:

•Error pembagian 0

•Mengakses elemen di luar jangkauan sebuah array •Input yang sifatnya invalid

•Hard disk crash

•Membuka file yang tidak ada

(39)

Kita dapat menulis kode untuk menangani

exceptions sehingga program dapat berlanjut.

Java mempunyai kelas-kelas exceptions yang

muncul selama program berjalan.

Super class untuk seluruh error dan exception

adalah kelas

Throwable

yang mempunyai dua

sub class

39

(40)

40

Hirarki Kelas Exception

Object

Throwable

Error Exception

Runtime Exception VirtualMachineError

(41)
(42)

42

Pesan Exception

Jika exception tidak ditangani oleh program, program akan berhenti dan menghasilkan pesan yang berisi tipe exception yang muncul dan di bagian mana dalam program munculnya exception.

Penanganan Exception

Penanganan Exception mengijinkan program untuk menangkap exception, menanganinya, dan kemudian melanjutkan eksekusi program.

(43)

Contoh Exception

1 class DivByZero {

2 public static void main(String args[]) { 3 System.out.println(3/0);

4 System.out.println(“Pls. print me.”); 5 }

(44)

 didapatkan pesan kesalahan sebagai berikut

Exception in thread "main"

java.lang.ArithmeticException: / by zero at DivByZero.main(DivByZero.java:3)

 Default handler

 Menampilkan deskripsi exception

 Menampilkan stack trace

 Hirarki method dimana exception terjadi

 Menghentikan program secara paksa

(45)

Blok

try

Langkah pertama membentuk penangan exception adalah meletakkan statements yang bisa menimbulkan exception didalam blok try.

try

{

statements

}

(46)

Statement

try harus disertai minimal

satu blok catch atau blok finally.

Jika

muncul

exception

didalam

statement try, exception ditangani

oleh penangan exception yang sesuai

dengan statement try ini.

(47)

Block

catch

Kita asosiasikan penangan exception

dengan statement try dengan menyediakan

satu atau lebih blok catch langsung setelah

blok try.

Tidak boleh ada kode intervensi antara

akhir pernyataan try dan awal dari

pernyataan catch pertama.

(48)

Contoh

try { statements; statements; } catch(ArithmeticException e) { System.out.println(“Error”); }

(49)

1 class DivByZero {

2 public static void main(String args[]) { 3 try {

4 System.out.println(3/0);

5 System.out.println(“Setelah pembagian”); 6 } catch (ArithmeticException ae) {

7 //Dibagi dengan 0 -> ArithmeticException 8 System.out.println(ae);

9 }

10 System.out.println(“Setelah exception.”); 11 }

12 }

(50)

try { statements; statements; } catch(ArithmeticException e) { } catch(ArrayIndexOutofBoundsException e) { }

(51)

1 class MultipleCatch {

2 public static void main(String args[]) { 3 try {

4 int pembagi = Integer.parseInt(args[0]); 5 System.out.println(3/pembagi);

6 } catch (ArithmeticException exc) {

7 System.out.println(“pembagi adalah 0.”);

8 } catch (ArrayIndexOutOfBoundsException exc2) { 9 System.out.println(“Kurang argument.”);

10 }

11 System.out.println(“Setelah exception.”); 12 }

13 }

(52)

Nested try

1. class NestedTryDemo {

2. public static void main(String args[]){ 3. try { 4. int a = Integer.parseInt(args[0]); 5. try { 6. int b = Integer.parseInt(args[1]); 7. System.out.println(a/b); 8. } catch (ArithmeticException e) {

9. System.out.println(“Error dibagi nol!"); 10. } 11. } catch (ArrayIndexOutOfBoundsException e) { 12. System.out.println(“Butuh 2 parameters!"); 13. } 14. } 15. }

(53)

finally

Block

Statement finally mendefinisikan blok

kode yang selalu dieksekusi, tanpa

memperhatikan terjadi exception atau

tidak.

Blok Finally sering dipakai untuk

menghapus resources atau menutup

koneksi baik terjadi exception maupun

tidak.

(54)

try {

statements; statements; }

catch(ArithmeticException e){ }

catch(ArrayIndexOutofBoundsException e){ }

finally

{ }

(55)

1 class FinallyDemo {

2 static void myMethod(int n) throws Exception{ 3 try {

4 switch(n) {

5 case 1: System.out.println("1st case"); 6 return;

7 case 3: System.out.println("3rd case"); 8 throw new RuntimeException("3!"); 9 case 4: System.out.println("4th case"); 10 throw new Exception("4!");

11 case 2: System.out.println("2nd case"); 12 } 13 } catch (RuntimeException e) { 14 System.out.print("RuntimeException: "); 15 System.out.println(e.getMessage()); 16 } finally { 17 System.out.println("try-block entered."); 18 } 19 } 20 // bersambung . . .

Contoh Try-Catch-Finally

(56)

21 public static void main(String args[]){ 22 for (int i=1; i<=4; i++) {

23 try {

24 FinallyDemo.myMethod(i); 25 } catch (Exception e){

26 System.out.print("Exception caught: "); 27 System.out.println(e.getMessage()); 28 } 29 System.out.println(); 30 } 31 } 32 }

Contoh Try-Catch-Finally

(57)

Exception Handling

(lanjutan)

Melempar ExceptionStatement throws

57

(58)

Menangani Exception pada program

Menggunakan throws

Membuat Exception sendiri

(59)

Statement

throw

Statement throw digunakan untuk melempar exception dari kode Java.

Kita juga dapat menciptakan exception buatan kita sendiri dan melemparnya (jika dibutuhkan) menggunakan statement throw .

Kita hanya dapat melempar objek dari instan yang diturunkan dari kelas Throwable.

throw exceptionObject;

Contoh:

(60)

int a = 6;

int b = 0;

if(b == 0) {

ArithmeticException e = new ArithmeticException(“Error”);

throw e; } else { System.out.println(a/b); }

Throwing Exception

(61)

Exceptions Wrapping

try { System.out.println(6/0); } catch(ArithmeticException e) {

Exception ex = new Exception(e);

throw ex; }

Kita dapat melakukan wrapping Exception e menjadi Exception lain dan kemudian melemparkannya.

(62)

Statement

throws

Exception yang dilempar keluar dari method harus ditentukan oleh klausa throws.

Jika method mampu mengakibatkan exception yang tidak ditangani, method harus menentukan perilakunya sedemikian sehingga pemanggil method dapat menjaga diri terhadap exception.

Ini dikerjakan dengan klausa throws dalam deklarasi method.

(63)

Klausa throws mendaftarkan jenis exception yang mana method yang akan melemparkan.

Semua exception lain, yang mana method yang bisa melempar harus dideklarasikan dalam klausa throws, sebaliknya maka akan terjadi error kompilasi.

Jika method bisa melemparkan lebih dari satu exception maka semua exception harus dideklarasikan dengan pemisah koma.

Statement

throws

public void print(int a, int b)

throws ArithmeticException, NullPointerException {

(64)

Soal

 Sebutkan lima contoh exception

 Sebutkan apa saja keuntungan penanganan

exception dibanding cara konvensional untuk penangan error

 Mengapa teknik exception handling tidak

digunakan untuk kontrol program konvensional

Jika tidak muncul exception dalam blok try,

kemana kontrol program akan dijalankan?

(65)

1. Dietel H.M., Dietel P.J., 2003, Java How to Program fifth

edition, Pearson Education, Inc, Prentice Hall, New Jersey.

Sierra, K, Bates, B, 2005, Head First Java, second edition,

O’Reilly Media, Inc. United States of America

Ralph Morelli, Ralph Walde, 2005, Java, Java, Java™:

Object-Oriented Problem Solving, Third Edition, Prentice Hall

Jonathan Knudsen, Patrick Niemeyer, 2005, Learning Java,

3rd Edition, Learning Java, 3rd Edition

(66)

Abstraksi

Konsep abstraksi

Kelas Abstract

Method Abstract

66

Sesi 4

(67)

67

Abstraksi

Abstraksi adalah teknik desain yang

memfokuskan pada aspek penting dari entitas dan mengabaikan aspek yang kurang penting Abstraksi adalah alat penting untuk

(68)

 Kelas abstract adalah kelas yang

diimplementasikan secara sebagian yang bertujuan untuk menyatakan konsep abstrak

 Kelas abstract tersusun atas satu atau lebih

method-method abstract.

 Kelas abstract tidak dapat diinstantiasi karena

merepresentasikan konsep abstrak

 Sering muncul pada puncak hierarki kelas

object-oriented programming(OOP),

mendefinisikan segala type action/tindakan yang mungkin dengan object semua subclass dari class

(69)

Deklarasi Kelas Abstract

public abstract class Binatang {

}

Binatang adalah kelas abstract sehingga statement berikut tidak dapat dikompilasi.

(70)

Method abstract

 Method di dalam abstract class tidak

mempunyai implementasi

 Untuk membuat abstract method, tulis saja

deklarasi method tanpa body dan gunakan keyword abstract

Contoh:

Method Abstract

(71)

Contoh Abstract Class

public abstract class LivingThing { public void breath(){

System.out.println("Living Thing breathing..."); }

public void eat(){

System.out.println("Living Thing eating..."); }

/**

* abstract method walk

* Kita ingin method ini di-overrride oleh subclass dari * LivingThing

*/

public abstract void walk(); }

(72)

Konsep Abstract Class & Method

 Kelas abstract tidak dapat diinstantiasi, artinya kita tidak dapat menciptakan objek dari kelas abstract dengan kata kunci new.

 Kelas abstract hanya dapat dibuat sub kelas.

 Kelas yang diturunkan dari kelas abstract harus melakukan override semua method abstract dari kelas induknya. Jika tidak mendefinisikan semua method maka kelas itu akan tetap menjadi kelas abstract.

(73)

Konsep Abstract Class & Method

 Kelas abstract dapat mempunyai campuran method non abstract dan method abstract

 Kelas abstract dan method abstract tidak dapat dideklarasikan sebagai final.

 Method abstract tidak dapat dideklarasikan sebagai

static.

 Method abstract tidak dapat dideklarasikan sebagai

(74)

Apa yang terjadi jika suatu kelas terdapat

method abstract?

Apa yang terjadi jika anda menurunkan

kelas dari kelas abstract?

Sebutkan sifat-sifat kelas abstract

Apa perbedaan method non abstract dan

method abstract

(75)

Interface

 Konsep interface  Penggunaan Interface,  Implementasi Interface 75

Sesi 5

(76)

Mampu menjelaskan pengertian dan konsep

interface

Mampu membuat interface

Mampu mengimplementasi interface

(77)

Interface

 Interface

 Adalah semacam blok spesial yang hanya berisi tanda tangan method

(dan mungkin konstan).

 Menggambarkan tandatangan dari seperangkat method, tanpa body  Menggambarkan cara standard dan publik penetapan behavior class  Mengijinkan class,dengan mengabaikan lokasi mereka di dalam

hirarki class untuk menerapkan behavior.

 CATATAN: Interface memperlihatkan polymorphism juga, sejak

program diperbolehkan memanggil sebuah method interface, dan versi yang sesuai dari method tersebut akan dieksekusi tergantung pada jenis object yang dilewatkan kepada pemanggilan method interface

(78)

Mengapa menggunakan

interface?

 Untuk memiliki class yang tidak berhubungan yang

mengimplementasikan method yang sama.

 Contoh:

 Class Line dan MyInteger

Tidak berhubungan

Keduanya mengimplementasikan method

perbandingan

 isGreater

 isLess

(79)

Mengapa menggunakan

interface?

Untuk mengungkapkan sebuah interface

pemrograman object tanpa pernyataan

classnya

Untuk model multi inheritance yang

mengijinkan sebuah class untuk memiliki

lebih dari satu superclass.

(80)

Membuat interface

 Untuk membuat sebuah interface, kita tulis:

public interface [InterfaceName] { //beberapa method tanpa body }

(81)

Membuat interface

● Sebagai contoh, mari buat sebuah interface yang

mendefinisikan hubungan antara dua object sesuai dengan pesanan dari object.

public interface Relation {

public boolean isGreater( Object a, Object b); public boolean isLess( Object a, Object b); public boolean isEqual( Object a, Object b); }

(82)

Membuat interface

● Untuk menggunakan interface, kita gunakan keyword implements ● Sebagai contoh,

/**

* Class ini menjelaskan segment garis */

public class Line implements Relation { private double x1;

private double x2; private double y1; private double y2;

public Line(double x1, double x2, double y1, double y2){ this.x1 = x1;

this.x2 = x2; this.y1 = y1; this.y2 = y2; }

(83)

Membuat interface

public double getLength(){

double length = Math.sqrt((x2-x1)*(x2-x1) + (y2-y1)* (y2-y1)); return length;

}

public boolean isGreater( Object a, Object b){ double aLen = ((Line)a).getLength(); double bLen = ((Line)b).getLength(); return (aLen > bLen);

}

public boolean isLess( Object a, Object b){ double aLen = ((Line)a).getLength(); double bLen = ((Line)b).getLength(); return (aLen < bLen);

}

public boolean isEqual( Object a, Object b){ double aLen = ((Line)a).getLength(); double bLen = ((Line)b).getLength(); return (aLen == bLen);

} }

(84)

Membuat interface

● Ketika class Anda mencoba untuk mengimplementasikan

sebuah interface, pastikan selalu bahwa Anda

mengimplementasikan semua method dari interface

tersebut, jika tidak, Anda akan mendapatkan kesalahan ini.

Line.java:4: Line is not abstract and does not override abstract method

isGreater(java.lang.Object,java.lang.Object) in Relation public class Line implements Relation

^ 1 error

(85)

Interface vs. Abstract Class

 Semua interface method tidak memiliki body

 Beberapa Abstract class memiliki method dengan

implementasi

 Sebuah interface hanya dapat didefinisikan constant  Sebuah abstract class tampak seperti class biasa yang

dapat mendeklarasikan variabel.

 Interface tidak memiliki hubungan inheritance secara

langsung dengan setiap class tertentu, mereka didefinisikan secara independen.

(86)

Interface vs. Class

 Persamaan:

 Interface dan class adalah sama-sama sebuah type

 Hal ini berarti bahwa interface dapat digunakan di tempat dimana

sebuah class dapat digunakan

 Sebagai contoh:

PersonInterface pi = new Person(); Person pc = new Person();

 Perbedaan:

 Anda tidak dapat membuat instance dari sebuah interface  Sebagai contoh:

(87)

Interface vs. Class

● Persamaan:

Interface dan class, keduanya dapat mendefinisikan method

● Perbedaan:

(88)

Meng-extends Class vs.

Implementasi interface

● Sebuah class hanya bisa meng-EXTENDS SATU

superclass, tetapi juga bisa meng-IMPLEMENTASIKAN BANYAK interface

● Sebagai contoh:

public class Person implements PersonInterface, LivingThing,

WhateverInterface { //beberapa kode disini

(89)

Meng-extends Class vs.

Implementasi interface

Contoh lain:

public class ComputerScienceStudent extends Student implements PersonInterface,

LivingThing { //Beberapa kode disini

(90)

Inheritance antar interface

 Interface bukanlah bagian dari hirarki class,

bagaimanapun juga interface dapat memiliki hubungan inheritance antar mereka sendiri

 Sebagai contoh:

public interface PersonInterface { . . .

}

public interface StudentInterface extends PersonInterface { . . .

Referensi

Dokumen terkait

Uji coba akan dilakukan perbandingan kedua metode yang digunakan yaitu antara metode Simple Exponential Smoothing dan metode Winter. Dasar periode perhitungan yang digunakan

Penentuan jenis kelamin pada khuntha&gt; merupakan kemaslahatan pada tingkatan qat}‘i&gt;, memastikan dan menentukan jenis kelamin khuntha&gt; sebagai laki-laki

1) Penyampaian pelajaran menjadi lebih baku, setiap siswa yang melihat atau mendengar penyajian melalui media menerima pesan yang sama. Meskipun guru menafsirkan

kompetensi menulis puisi, misalnya, penulis Contoh lain, misalnya, di dalam dapat meminta siswa mengidentifikasi pembelajaran menulis cerita pendek, penulis

(Employee Stock Ownership Plan) yaitu program kepemilikina saham oleh pegawai perusahaan, dengan denikian akan didapat perhatian dan komitmen lebih tinggi dalam mencapai

Setelah metrik SCOR 11.0 terdefinisi, selanjutnya yaitu menghitung skor setiap metrik berdasarkan data yang telah diperoleh sehingga hasil tersebut akan diintegrasikan dengan

Dalam membuka sebuah bisnis banyak orang yang tidak menganalisa peluang, resiko dan pemetaan usaha sehingga mereka membuka usahanya hanya dengan menggunakan keinginan mereka