Upload presentasi
Presentasi sedang didownload. Silahkan tunggu
1
MINGGU 7 Java Programming (MKB614C)
Pokok Bahasan: Inheritance & Polymorphism Tujuan Instruksional Khusus: Siswa memahami konsep inheretance & polymorphism di Java Java Programming (MKB614C) Minggu Page 1
2
Java Programming (MKB614C)
Agenda Inheritance, Superclass & subclass Keyword super Overriding method Overriding vs overloading Class Object (java.lang.Object) & method toString() Polymorphism Dynamic biding Casting object dan operator instanceof Method equals pada class Object (java.lang.Object) Class ArrayList (java.util.ArrayList) Visibility data & method Method preventing extending & overriding Java Programming (MKB614C) Minggu Page 2
3
Java Programming (MKB614C)
Inheritance Inheritence: kemampuan membuat suatu object dari object lain Java Programming (MKB614C) Minggu Page 3
4
Superclass & subclass Superclass: class yang memiliki karakteristik umum, superclass disebut juga class parrent atau class base. Subclass: class yang memiliki karakteristik lebih khusus, subclass disebut juga class child, class extended atau class dervied.
5
Superclass & subclass pada geometri
6
Membuat subclass Untuk membuat subclass digunakan operator extends.
Syntax: public class Circle extends GeometricObject Karakteristik inheritance: Umumnya subclass berisi informasi & method yang lebih terinci & banyak dibanding superclassnya. Tipe data field private pada superclass tidak dapat diakses langsung oleh subclass. Tidak semua model relationship harus dimodelkan dengan inheritance. Contoh: class kotak & class segi empat merupakan subclass dari GeometricObject Jangan memaksakan penggunaan kode berulang (reuseing method/property) dengan mengekstend class. Contoh class Pohon dan class Orang memiliki method hidup(). Orang bukan subclass Pohon dsb. Java hanya mendukung single inheritance (1 superclass/parent).
7
Keyword super Keyword super: keyword yang digunakan untuk merefer superclass dalam mengakses Constructors dari superclass. Method dari superclass. Syntax untuk memanggil constructor: super(), or super(parameters); Syntax untuk memanggil method: super.method(parameters);
8
Contoh penggunaan keyword super
public class SimpleGeometricObject { private String color = "white"; private boolean filled; private java.util.Date dateCreated; ... public SimpleGeometricObject(String color, boolean filled) { dateCreated = new java.util.Date(); this.color = color; this.filled = filled; } public java.util.Date getDateCreated() { return dateCreated; public class CircleFromSimpleGeometricObject extends SimpleGeometricObject { private double radius; public CircleFromSimpleGeometricObject(double radius, String color, boolean filled) { super(color,filled); this.radius = radius; public void printCircle() { System.out.println("The circle is created " + super.getDateCreated() + "and the radius is " + radius); Contoh penggunaan keyword super
9
Overriding method Overriding method: adalah method yang memiliki nama yang sama dengan superclass, namun dibutuhkan untuk melakukan proses yang lebih spesifik. Contoh overriding method toString() pada subclass CircleFromSimpleGeometricObject // Override the toString method defined in the superclass public String toString() { return super.toString() + "\nradius is " + radius; }
10
Overriding vs overloading
Overloading method: adalah method pada sebuah class yang memiliki nama yang sama namun signature yang berbeda. Perbedaan overriding dengan overloading: Method overriding melibatkan class yang berbeda dan berhubungan dengan inheritance (superclass/parent & subclass/ child); sedangkan overloading melibatkan hanya 1 class dan tidak berhubungan dengan inheritance. Method overriding memiliki nama method, signature dan return type yang sama; sedangkan overloading memiliki nama method yang sama tetapi parameter yang berbeda.
11
Class Object ArrayList (java.langObject) & method toString()
Class Object (java.lang.Object) merupakan superclass dari semua class yang ada, termasuk class API yang disediakan JDK/JVM. Method toString() pada class Object disediakan untuk mendapatkan signature dari suatu object. Contoh signature myCircle: CircleWithPrivateDataFields myCircle = new CircleWithPrivateDataFields(5.0); System.out.println(myCircle.toString()); Output: Catatan: class tidak harus ditulis extends Object secara implisit
12
Polymorphism Polymorphism: desain suatu kelas baru berdasarkan kelas lain, dimana variabel supertype dapat merefer ke object subtype. Polymorphism dikenal juga dengan “many form”/banyak bentuk. Supertype: tipe yang didefinisikan dari superclassnya Subtype: tipe yang didefinisikan dari subclassnya. Saat sebuah instance dari subclass dibuat, akan dibuat instance dari subclass itu sendiri, beserta superclassnya. Instance subclass merupakan instance superclass tapi tidak sebaliknya. Contoh: setiap object lingkaran merupakan object geometri, tapi tidak semua object geometri merupakan object lingkaran.
13
Contoh polymorphism public class PolymorphismDemo { /** Main method */
public static void main(String[] args) { // Display circle and rectangle properties displayObject(new CircleFromSimpleGeometricObject(1, "red", false)); displayObject(new RectangleFromSimpleGeometricObject(1, 1, "black", true)); } /** Display geometric object properties */ public static void displayObject(SimpleGeometricObject object) { System.out.println("Created on " + object.getDateCreated() + ". Color is “ + object.getColor());
14
Dynamic binding Declare type: type yang mendeklarasi suatu variabel
Actual type: tipe variabel class sebenarnya dari object yang direferensikan variabel tersebut. Contoh: Contoh: Object o = new SimpleGeometricObject(); Tipe Declare o adalah Object Tipe Actual o adalah SimpleGeometricObject Dynamic binding: binding suatu object dengan tipe actual ke tipe declare yang merupakan superclassnya.
15
Contoh Dynamic binding
public class DynamicBindingDemo { public static void main(String[] args) { m(new GraduateStudent()); m(new Student()); m(new Person()); m(new Object()); } public static void m(Object x) { System.out.println(x.toString()); class GraduateStudent extends Student { class Student extends Person { @Override public String toString() { return "Student" ; class Person extends Object { return "Person" ; Output: Student Person
16
Casting object Casting object: adalah casting suatu reference object ke reference object lain, yang memiliki hubungan inheritance. Implicit casting: dimana casting reference object dapat dilakukan secara implicit. Umumnya merupakan casting ke superclass (upcasting) Explicit casting: dimana casting reference object harus dilakukan secara implicit. Umumnya merupakan casting ke subclass (downcasting) Contoh: Object o = new Student(); // implicit casting Student b = (Student)o; // explicit casting Catatan: ClassCastException akan muncul bila casting dilakukan terhadap reference object dari class yang tidak memiliki hubungan inheritance.
17
Operator instaceof Instaceof digunakan untuk menguji apakah suatu reference object dapat di casting ke reference object lain. Contoh: Object o = new CircleFromSimpleGeometricObject(1); if (o instanceof CircleFromSimpleGeometricObject) { System.out.println(“object o dapat dicasting ke CircleFromSimpleGeometricObject "); }
18
Method equals pada class Object (java.lang.Object)
Method equals pada Object: method yang dapat digunakan untuk membandingkan 2 buah object. Syntax: public boolean equals(Object obj) Contoh: object1.equals(object2); Method equals(Object obj) hanya membandingkan reference dari 2 variable. Untuk membandingkan konten/isi dari object, method equals harus di override
19
Contoh override method equals() pada class Circle
// overriding class Circle // untuk membandingkan // jari-jari lingkaran public boolean equals(Object o) { if (o instanceof Circle) return radius == ((Circle)o).radius; else return this == o; }
20
Kerjakan latihan halaman 411
SimpleGeometricObject.java CircleFromSimpleGeometricObject.java RectangleFromSimpleGeometricObject.java TestCircleRectangle.java
21
Class ArrayList (java.util.ArrayList)
ArrayList: digunakan untuk menyimpan sejumlah object. Array memiliki ukuran element yang fix sedangkan ArrayList elementnya dapat ditambah dan dikurang. ArrayList merupakan class generik dengan generik type E, dimana E dapat diganti dengan tipe actual/konkret. Contoh deklarasi ArrayList ArrayList<String> kota = new ArrayList<String>(); ArrayList<java.util.Date> tanggal = new ArrayList<java.util.Date> ();
22
Array vs ArrayList
23
Implementasi interface List pada ArrayList
ArrayList mengimplementasi interface List. Implementasi List memungkin ArrayList: Membuat ArrayList dari array Melakukan shorting Menemukan element terbesar & terkecil Mengacak daftar
24
Contoh penggunaan List
Contoh membuat ArrayList dari array String[] array = {"red", "green", "blue"}; ArrayList<String> list = new ArrayList<>(java.util.Arrays.asList(array)); Contoh membuat array dari ArrayList String[] array1 = new String[list.size()]; list.toArray(array1); Contoh melakukan shorting Integer[] array = {3, 5, 95, 4, 15, 34, 3, 6, 5}; ArrayList<Integer> list = new ArrayList<>(java.util.Arrays.asList(array)); java.util.Collections.sort(list); System.out.println(list); Contoh menemukan element terbesar & terkecil System.out.println(java.util.Collections.max(list)); System.out.println(java.util.Collections.min(list)); Contoh mengacak daftar java.util.Collections.shuffle(list);
25
Method preventing extending & overriding
Class final & method final tidak dapat di extended. Data final tidak dapat dirubah (digunakan untuk nilai/value konstan) Contoh class final public final class A { // Data fields, constructors, and methods omitted } Contoh method final public class Test { public final void m() { // Do something
26
Kerjakan latihan halaman 433
TestArrayList.java
27
Sekilas IDE Eclipse Eclipse is famous for our Java Integrated Development Environment (IDE), but our C/C++ IDE and PHP IDE are pretty cool too. You can easily combine language support and other features into any of our default packages, and the Eclipse Marketplace allows for virtually unlimited customization and extension. Eclipse meerupakan tools Java Integrated Development Environment (IDE) Eclipse dapat digunakan untuk bahasa pemrograman: Ada, ABAP, C, C++, COBOL, Fortran, Haskell, JavaScript, Lasso, Lua, Natural, Perl, PHP, Prolog, Python, R, Ruby (including Ruby on Rails framework), Scala, Clojure, Groovy, Scheme, & Erlang. Eclipse IDE bersumber pada IBM VisualAge, dan direlease Eclipse Public License (
28
Perbandingan Eclipse Luna SR2 Packages Java IDE
Eclipse IDE for Java Developers Eclipse Git Team Provider Eclipse Java Development Tools Maven Integration for Eclipse Mylyn Task List Code Recommenders Tools for Java Developers WindowBuilder Core Eclipse XML Editors and Tools Eclipse IDE for Java EE Developers Data Tools Platform Eclipse Java EE Developer Tools JavaScript Development Tools Eclipse Plug-in Development Environment Remote System Explorer Perbandingan Eclipse Luna SR2 Packages Java IDE
Presentasi serupa
© 2024 SlidePlayer.info Inc.
All rights reserved.