Presentasi sedang didownload. Silahkan tunggu

Presentasi sedang didownload. Silahkan tunggu

Java Programming (MKB614C) MINGGU 8 Java Programming (MKB614C) Minggu 8 Page 1 Pokok Bahasan: Classes Abstract and Interfaces Tujuan Instruksional Khusus:

Presentasi serupa


Presentasi berjudul: "Java Programming (MKB614C) MINGGU 8 Java Programming (MKB614C) Minggu 8 Page 1 Pokok Bahasan: Classes Abstract and Interfaces Tujuan Instruksional Khusus:"— Transcript presentasi:

1

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

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

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

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

6 Kesimpulan class abstract 1.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. 2.Class abstract tidak dapat diinstantiate menggunakan operator new. Class abstract boleh tidak mengandung method abstract. 3.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. 4.Sublcass dapat berupa abstract, meskipun sueprclassnya concrete. Contoh class Object concreate, tapi GeometricObject abstract. 5.Merskipun tidak diinstantiate, namun dapat digunakan sebagai tipe data. Contoh: GeometricObject[] obj = new GeometricObject[3];

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

8 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 */ }

9 Latihan Kerjakan: LISTING 13.7 TestEdible.java

10 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"); }

11 Interface Cloneable Interface Cloneable (java.lang) digunakan untuk mendefinisikan karakteristik object yang mengimplementasikannya, dapat diclone. Contoh: ArrayList list1 = new ArrayList<>(); list1.add(1.5); list1.add(2.5); list1.add(3.5); ArrayList list2 = (ArrayList )list1.clone(); ArrayList 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]

12 Deep Clone xxx

13 Perbedaan interface dengan abstract VariableConstructorMethod AbstractNo restriction Constructor melibatkan rantai subclass No restriction InterfaceHarus Public static final Tidak dapat di instantiate Harus public

14 Mendesain class 1.Cohesion: class harus mendefisikan 1 entitas dan memuat semua logikalnya. Contoh class Student tidak dapat digabung dengan class Staff. 2.Consistency: ikuti standar gaya dan penamanan yang berlaku dalam pemrograman Java. Contoh fungsi length() memiliki penamaan yang sama untuk class String, StringBuilder dan StringBuffer. 3.Encapsulation: class harus menggunakan modifer private untuk menyembunyikan data dari akses secara langsung. 4.Clarity: cohesion, consistency dan encapsulation menjamin desain class yang jelas, mudah dijelaskan dan mudah dipahami. Contoh class Loan memiliki property loanAmount, numberOfYears dan annualInterestRate. 5.Completeness: class harus didisain untuk memenuhi semua kebutuhan yang berbeda. Contoh class String memiliki 40 method untuk kebutuhan aplikasi yang berbeda. 6.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. 7.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. 8.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.

15 Review & Latihan W08 ke: 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.

16 (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 "Java Programming (MKB614C) MINGGU 8 Java Programming (MKB614C) Minggu 8 Page 1 Pokok Bahasan: Classes Abstract and Interfaces Tujuan Instruksional Khusus:"

Presentasi serupa


Iklan oleh Google