Presentasi sedang didownload. Silahkan tunggu

Presentasi sedang didownload. Silahkan tunggu

MINGGU 8 Java Programming (MKB614C)

Presentasi serupa


Presentasi berjudul: "MINGGU 8 Java Programming (MKB614C)"— Transcript presentasi:

1 MINGGU 8 Java Programming (MKB614C)
Pokok Bahasan: Classes Abstract and Interfaces Tujuan Instruksional Khusus: Siswa memahami konsep class abstract & interface di Java Java Programming (MKB614C) Minggu Page 1

2 Java Programming (MKB614C)
Agenda Class abstract Interface Comparable interface Cloneable interface Interfaces vs abstract Java Programming (MKB614C) Minggu Page 2

3 Java Programming (MKB614C)
Class abstract Class abstract tidak dapat digunakan membuat object (instan object). Class abstract dapat memiliki abstract method, yang implementasinya dilakukan di subclass konkret. Java Programming (MKB614C) Minggu Page 3

4 Contoh class abstract public abstract class GeometricObject {
// properties …… // methods /** Abstract method getArea */ public abstract double getArea(); /** Abstract method getPerimeter */ public abstract double getPerimeter(); }

5 Kesimpulan class abstract
Method abstract tidak dapat berada dalam non klass non abstract. Jika subclass tidak mengimplementasi method abstract, maka subclass tersebut harus mendefinisikan method tersebut sebagai abstract. Method abstract tidak boleh static. Class abstract tidak dapat diinstantiate menggunakan operator new. Class abstract boleh tidak mengandung method abstract. Subclass dapat meng-override method dari superclass menjadi abstract. Hal ini terjadi saat method di superclass tidak valid di subclass, sehingga harus didefinisikan sebagai abstract. Sublcass dapat berupa abstract, meskipun sueprclassnya concrete. Contoh class Object concreate, tapi GeometricObject abstract. Merskipun tidak diinstantiate, namun dapat digunakan sebagai tipe data. Contoh: GeometricObject[] obj = new GeometricObject[3];

6 Latihan Kerjakan: LISTING 13.1 GeometricObject.java
LISTING 13.2 Circle.java LISTING 13.3 Rectangle.java LISTING 13.4 TestGeometricObject.java

7 Interface Interface adalah class yang hanya memilki nilai constants dan method abstract. Interface mirip dengan class asbtract, tapi ditujukan untuk menspesifikasi kerakter umum untuk object. Contoh: interface digunakan untuk menspesifikasi sebuah object comparable, editable dan atau cloneable. Syntax: modifier interface InterfaceName { /** Constant declarations */ /** Abstract method signatures */ }

8 Latihan Kerjakan: LISTING 13.7 TestEdible.java

9 Interface Compareble Interface Comparable (java.lang) digunakan untuk mendefinisikan karakteristik object yang mengimplementasikannya, dapat dibandingkan dengan object sejenis. Contoh: Integer i = new Integer(50); if (i instanceof Comparable) { System.out.println("i Comparable"); } String s = "Hello World"; if (s instanceof Comparable) { System.out.println("s Comparable"); java.util.Date d = new java.util.Date(); if (d instanceof Comparable) { System.out.println("d Comparable");

10 Interface Cloneable Interface Cloneable (java.lang) digunakan untuk mendefinisikan karakteristik object yang mengimplementasikannya, dapat diclone. Contoh: ArrayList<Double> list1 = new ArrayList<>(); list1.add(1.5); list1.add(2.5); list1.add(3.5); ArrayList<Double> list2 = (ArrayList<Double>)list1.clone(); ArrayList<Double> list3 = list1; list2.add(4.5); list3.remove(1.5); System.out.println("list1 is " + list1); System.out.println("list2 is " + list2); System.out.println("list3 is " + list3); list1 is [2.5, 3.5] list2 is [1.5, 2.5, 3.5, 4.5] list3 is [2.5, 3.5]

11 Deep Clone xxx

12 Perbedaan interface dengan abstract
Variable Constructor Method Abstract No restriction Constructor melibatkan rantai subclass Interface Harus Public static final Tidak dapat di instantiate Harus public

13 Mendesain class Cohesion: class harus mendefisikan 1 entitas dan memuat semua logikalnya. Contoh class Student tidak dapat digabung dengan class Staff. Consistency: ikuti standar gaya dan penamanan yang berlaku dalam pemrograman Java. Contoh fungsi length() memiliki penamaan yang sama untuk class String, StringBuilder dan StringBuffer. Encapsulation: class harus menggunakan modifer private untuk menyembunyikan data dari akses secara langsung. Clarity: cohesion, consistency dan encapsulation menjamin desain class yang jelas, mudah dijelaskan dan mudah dipahami. Contoh class Loan memiliki property loanAmount, numberOfYears dan annualInterestRate. Completeness: class harus didisain untuk memenuhi semua kebutuhan yang berbeda. Contoh class String memiliki 40 method untuk kebutuhan aplikasi yang berbeda. Instance vs static: variabel/method yang tergantung pada instance dari suatu class, harus instance variable/method. Variable yang digunakan oleh semua instance dapat di dideklar variable static. Method yang tidak bergantung pada spesifik instance, dapat dideklar method static. Contoh method factorial(int n) dapat dideklar static. Inheritance vs aggregation: inheritance berhubungan dengan is-a (adalah) dan aggregation berhubungan dengan has-a (memiliki). Contoh apple is a fruit, maka digunakan hubungan inheritance. Sedangkan person memiliki nama, maka digunakan hubungan aggregation. Interface vs class abstract: untuk hubungan yang kuat digunakan class abstract, contoh apple dengan fruit. Untuk hubungan yang lemah dapat digunakan interface, contoh apple dengan Cloneable.

14 Review & Latihan W08 Email ke: agung.made@kwikkiangie
Subject: W08 no_mahasiswa Contoh: W Dwiyanti Nilai: Pengumpulan sebelum minggu depan 100 Pengumpulan setelah minggu depan 60 Tidak mengumpulkan atau melewati UTS/UAS 0.

15 This displays the calendar shown in Figure
(Display calendars) Rewrite the PrintCalendar class in Listing 6.12 to display a calendar for a specified month using the Calendar and GregorianCalendar classes. Your program receives the month and year from the command line. Forexample: java Exercise13_ This displays the calendar shown in Figure


Download ppt "MINGGU 8 Java Programming (MKB614C)"

Presentasi serupa


Iklan oleh Google