OOP Java 06 Polymorphism.

Slides:



Advertisements
Presentasi serupa
CARI ERROR !!! ADA BERAPA KESALAHAN ??? Apa beda JRE dan JDK ??? JDK JRE.
Advertisements

Membuat class sendiri.
Nur Hayatin, S.ST Jurusan Teknik Informatika Universitas Muhammadiyah Malang Sem Genap 2010.
POLIMORFISME Imam Fahrur Rozi 01.
Abstract Class & Interface
Pemrograman JAVA (TIB09)
Workshop SCS: Java Game Programming
Polymorphism Viska Mutiawani, M.Sc.
Modul 3: Kendali program dan teknik penyimpanan data
Inheritance ImamFahrur Rozi.
Pemrograman Berorientasi Objek
SLIDE OTOMATIS PINDAH DALAM WAKTU 4-5 MENIT. A:kiriB:kanan Deklarasikan sebuah variabel dengan nama ‘isi’ yang mempunyai type array of double dengan ukuran.
Overriding, Overloading, Polymorphism
INHERITANCE.
Pemrograman Java Pewarisan / Inheritance Polimorfisme Pemrograman Java.
Inheritance Ery Setiyawan Jullev A.
Inheritance (Pewarisan)
POLIMORFISM Ery Setiyawan Jullev A.
Overriding, Overloading, Polymorphism
POLIMORFISME 2 Imam Fahrur Rozi 01.
Pertemuan 8 Pemrograman Berbasis Obyek Oleh Tita Karlita
Encapsulation, Inheritance, polymorphism, dan interface
Variabel, Method & Constructor Oleh : Nur Hayatin, S.ST Teknik Informatika – UMM 2011.
Pemrograman Berorientasi Objek
INHERITANCE, POLYMORPHISM, DAN INTERFACE
Pewarisan, Polimorfisme, dan Interface
Inheritance (Pewarisan)
Pemrograman Berorientasi Obyek Oleh Tita Karlita
As’ad Djamalilleil Function (method) As’ad Djamalilleil
POLIMORPHISM Adharul Muttaqin Adharul M -
KELAS INNER, KELAS ABSTRACT, DAN INTERFACE
Pertemuan : Object Oriented Programming
OBJECT ORIENTED PROGRAMMING YANES HARDIANTO SUI Politeknik Manufaktur Astra 2011.
Inheritance Nana Ramadijanti Laboratorium Computer Vision Politeknik Elekltronika Negeri Surabaya PENS-ITS 2009.
PELATIHAN JAVA FUNDAMENTAL
07 Advanced Class Features
Bekerja dengan Java class library
Polymorphism (bag. 2).
Inheritance Konsep Inheritance Protected Member
Public class RelasiDemo { public static void main(String[] args) { //beberapa nilai int i = 37; int j = 42; int k = 42; System.out.println("Nilai variabel...");
OOP Java - Tj Konsep Dasar OOP.
Inheritance Matakuliah : T0984 / Algoritma dan Metode Object Oriented Programming II Pertemuan : 4 Tahun : 2008 Versi : 1/0.
Inheritance, polymorphism, dan interface
Class and Object Matakuliah : XXXX / Algoritma dan Metode Object Oriented Programming II Pertemuan : 2 Tahun : 2008 Versi : 1/0.
INHERITANCE (Oleh : Nur Hayatin, S.ST)
OOP Java Minggu 2b Dasar OOP. Class (1) Deklarasi class : [ *] class { [ *] } Cat : [] = optional, * = repeat 0-N.
Algoritma &Pemrograman 1
Manipulasi String dengan Kelas String dan StringBuffer
03 Elemen Dasar Bahasa Java
MATERI IV OOP (Object Oriented Programming) Chapter II.
Pertemuan 6 PEWARISAN AND POLYMORPHISM
Access Modifier.
Inheritance dan Kata Kunci static
Pemrograman Berorientasi Obyek
POLYMORPHISM (KEBANYAKRUPAAN)
Pemrograman Berorientasi Objek
POLYMORPHISM (KEBANYAKRUPAAN)
Pewarisan Disusun Oleh: Reza Budiawan Untuk:
MODIFIER JAVA.
Tugas Minggu Ke 9 PBO Siti Halisah
Lebih Jauh tentang Class, Objek dan Method
Inheritance.
PBO Lanjutan Membuat Kelas.
POLYMORPHISM.
Polymorphism (bag. 2).
Pilar Object Oriented Programming
Pemrograman Berorientasi Object
Pemrograman Berorientasi Objek
Pilar Object Oriented Programming
Pertemuan 5 Inheritance
Transcript presentasi:

OOP Java 06 Polymorphism

Materi yang akan dibahas : Overriding methods Polymorphism Heterogeneous Array Polymorphic arguments Operator instance of Type Casting objek

Overriding Methods (1) Overriding : memodifikasi kelakuan (behavior) dari kelas induk (parent class). Jika method pada kelas anak memiliki nama, return type & argument yg sama dengan method pd kelas induknya maka method tsb meng-override method induknya.

Overriding Methods (2) Contoh Penggunaan //Overriding methods : Employee.java public class Employee { protected String name = “Rudy”; protected double salary = 1000000; public String getDetails() { return "Name " + name + "\n" + "Salary : " + salary; } //Overriding methods : Manager.java public class Manager extends Employee { protected String department = “IT”; private String getDetails() { //illegal return "Name " + name + “\n“ + "Salary : " + salary + “\n” + "Manager of : " + department; getDetails() di manager meng-override getDetails() di Employee Method peng-override tidak bisa lebih terbatas aksesnya daripada method yang di override //Overriding methods : TestOverride.java public class TestOverride { public static void main(String[] args) { Employee p1 = new Employee(); Manager p2 = new Manager(); System.out.println("p1 : " + p1.getDetails()); System.out.println("p2 : " + p2.getDetails()); }

Overriding Methods (3) Memanggil method yg di override //Overriding methods : Employee.java public class Employee { protected String name; protected double salary; public String getDetails() { return "Name " + name + "\n" + "Salary : " + salary; } //Overriding methods : Manager.java public class Manager extends Employee { protected String department; return super.getDetails() + “\n” + "Manager of : " + department; super.getDetails() memanggil method getDetails() di Employee super digunakan utk mengakses member dari kelas induk

Polymorphism (1) Sebuah objek hanya bisa mempunyai satu bentuk, yaitu yg diberikan waktu objek dibuat. Tetapi variabel bersifat polymorphic karena dapat menunjuk ke objek2 dengan bentuk yg berbeda2. Kita dapat menunjuk (refer) ke sebuah objek dengan menggunakan variabel yg bertipe kelas induknya : Employee e = new Manager(); //legal Tetapi hanya dapat mengakses member dari objek yang juga merupakan member dari Employee, member yg hanya ada di Manager menjadi tersembunyi e.department = “accounting”; //illegal

e.getDetails(); Polymorphism (2) Aspek lain dari polymorphism adalah virtual method invocation. Apa yg terjadi ketika kita melakukan : Employee e = new Manager(); e.getDetails(); Statement e.getDetails(); pada saat kompilasi dicek terhadap kelas Employee, tetapi pada saat dijalankan kita akan mendapatkan behavior dari objek yg di refer, yaitu dari kelas Manager.

Polymorphism (3) //Polymorphism : TestPolymorph.java public class TestPolymorph { public static void main(String[ ] args) { Employee p1 = new Employee(); Employee p2 = new Manager(); Manager p3 = new Employee(); System.out.println("p1 : " + p1.getDetails()); System.out.println("p2 : " + p2.getDetails()); System.out.println("p3 : " + p3.getDetails()); }

Heterogeneous Array (1) Objek-objek dari kelas yg sama dapat disimpan didalam array. Ini disebut homogeneous array, contohnya sbb : Mahasiswa[] mhs = new Mahasiswa[3]; mhs[0] = new Mahasiswa(“0572123”, “Anton”); mhs[1] = new Mahasiswa(“0572070”, “Renny”); mhs[2] = new Mahasiswa(“0572237”, “Benny”);

Heterogeneous Array (2) Semua kelas di java adalah turunan dari kelas Object. Hal ini menyebabkan dapat dibuatnya array dari objek2 yg berasal dari kelas yg berbeda2, sehingga disebut heterogenous array. Employee[] staff = new Employee[3]; staff[0] = new Employee(); staff[1] = new Manager(); staff[2] = new Engineer();

Polymorphic Arguments (1) Dengan menggunakan Polymorphic Arguments, kita dapat membuat method yang dapat menerima generic object (parent objek) dan tetap dapat bekerja dengan baik menggunakan objek2 dari kelas turunannya :

Polymorphic Arguments (2) //Polymorphic Arguments : Hitung.java public class Hitung { public double hitungSalary(Employee e) { return e.salary; } //Polymorphic Arguments : TestPolyArg.java public class TestPolyArg { public static void main(String[ ] args) { Employee p1 = new Employee(); Manager p2 = new Manager(); Hitung p3 = new Hitung(); System.out.println("Salary p1 : " + p3.hitungSalary(p1)); System.out.println("Salary p2 : " + p3.hitungSalary(p2));

Operator instanceof (1) Untuk mengetahui objek yang sebenarnya, dapat digunakan operator instanceof : //Polymorphic Arguments : Hitung2.java public class Hitung2 { public double hitungSalary(Employee e) { if (e instanceof Manager) { return e.salary*2; } else { return e.salary; }

Typecasting (1) Casting objek dapat dilakukan dengan cara : Emloyee e = new Manager(); Manager m; String s; if (e instanceof Manager) { s = ((Manager) e). department; //atau m = (Manager) e; s = m.department; }

Typecasting (2) Untuk mengetahui objek yang sebenarnya, dapat digunakan operator instanceof : //Casting Object : Hitung3.java public class Hitung3 { public double hitungSalary(Employee e) { if (e instanceof Manager) { System.out.println(e.department); //error System.out.println(((Manager)e).department); //ok return e.salary*2; } else { return e.salary; }