POLIMORFISME 2 Imam Fahrur Rozi 01.

Slides:



Advertisements
Presentasi serupa
Pemrograman JAVA (TIB09)
Advertisements

CARI ERROR !!! ADA BERAPA KESALAHAN ??? Apa beda JRE dan JDK ??? JDK JRE.
Nur Hayatin, S.ST Jurusan Teknik Informatika Universitas Muhammadiyah Malang Sem Genap 2010.
POLIMORFISME Imam Fahrur Rozi 01.
Polymorphism Viska Mutiawani, M.Sc.
Inheritance ImamFahrur Rozi.
Pemograman beorientasi objek
Overriding, Overloading, Polymorphism
INHERITANCE.
Pemrograman Java Pewarisan / Inheritance Polimorfisme Pemrograman Java.
Inheritance Ery Setiyawan Jullev A.
Inheritance (Pewarisan)
Java Review Oleh: Idris Winarno.
POLIMORFISM Ery Setiyawan Jullev A.
Overriding, Overloading, Polymorphism
Pemrograman Berbasis Obyek Oleh Tita Karlita
Pertemuan 8 Pemrograman Berbasis Obyek Oleh Tita Karlita
Polymorpism.
Encapsulation, Inheritance, polymorphism, dan interface
INHERITANCE, POLYMORPHISM, DAN INTERFACE
Pewarisan, Polimorfisme, dan Interface
ABSTRACTION, ENCAPSULATION, INHERITANCE & POLYMORPHISM
POLIMORPHISM Adharul Muttaqin Adharul M -
- PERTEMUAN 4 - PERULANGAN
Pertemuan : Object Oriented Programming
OBJECT ORIENTED PROGRAMMING YANES HARDIANTO SUI Politeknik Manufaktur Astra 2011.
Flow Control & Looping Pertemuan 4 Pemrograman Berbasis Obyek Oleh Tita Karlita.
Pemrograman Berorientasi Obyek dengan JAVA Interface
Inheritance Nana Ramadijanti Laboratorium Computer Vision Politeknik Elekltronika Negeri Surabaya PENS-ITS 2009.
Bekerja dengan Java class library
Polymorphism (bag. 2).
Argumen Command-line Sebuah aplikasi Java dapat menerima sejumlah argumen dari command-line. Argumen dari command line memberikan kesempatan bagi.
OOP Java 06 Polymorphism.
Inheritance Matakuliah : T0984 / Algoritma dan Metode Object Oriented Programming II Pertemuan : 4 Tahun : 2008 Versi : 1/0.
Inheritance, polymorphism, dan interface
Advanced Class Features 2
INHERITANCE (Oleh : Nur Hayatin, S.ST)
Algoritma &Pemrograman 1
MATERI IV OOP (Object Oriented Programming) Chapter II.
Pertemuan 6 PEWARISAN AND POLYMORPHISM
POLIMORFISME.
Access Modifier.
Inheritance dan Kata Kunci static
Inheritance (Pewarisan)
POLYMORPHISM (KEBANYAKRUPAAN)
Pemograman Berorientasi Objek
Encapsulation, Inheritance, Polymorphism
Pemprograman Berorientasi Objek
Pemrograman Berorientasi Objek
@kovazzevic | SMKN 24 Jakarta
POLYMORPHISM (KEBANYAKRUPAAN)
Pewarisan Disusun Oleh: Reza Budiawan Untuk:
POLYMORPHISM.
Algoritma & Pemrograman 1
Constructor overloading
Pendahuluan PBO.
Karakteristik Pemrograman Berorientasi Objek
POLYMORPHISM.
Polymorphism (bag. 2).
Pilar Object Oriented Programming
STUDI KASUS.
Pilar Object Oriented Programming
PEWARISAN Kelompok : Alim Mutohidin ( )
Pertemuan 5 Inheritance
- PERTEMUAN 2- CONSTRUCTOR
Pertemuan 7 Inheritance (lanjutan)
Pengenalan Pemrograman 1
DPH1C4 Pemrograman berorientasi Obyek
DPH1C4 Pemrograman berorientasi Obyek
FONDASI PEMROGRAMAN & STRUKTUR DATA #8
Transcript presentasi:

POLIMORFISME 2 Imam Fahrur Rozi 01

Topik Virtual Method Invocation Polymorphic arguments Operator instanceof Casting & Convertion Objects

Virtual Method Invocation Virtual method invocation merupakan suatu hal yang sangat penting dalam konsep polimorfisme. Syarat terjadinya VMI adalah sebelumnya sudah terjadi polymorphism. Pada saat obyek yang sudah dibuat tersebut memanggil overridden method pada parent class, kompiler Java akan melakukan invocation (pemanggilan) terhadap overriding method pada subclass, dimana yang seharusnya dipanggil adalah overridden.

Contoh Virtual Method Invocation class Employee{} class Manager extends Employee{} … Employee emp = new Manager(); emp.getDetails();

Virtual Method Invocation Yang terjadi pada contoh: Obyek e mempunyai behavior yang sesuai dengan runtime type bukan compile type. Ketika compile time e adalah Employee. Ketika runtime e adalah Manager. Jadi : emp hanya bisa mengakses variabel milik Employee. emp hanya bisa mengakses method milik Manager

Virtual Method Invocation Bagaimana dengan konstruktor yang dijalankan? Pada pembentukan Employee e = new Manager(); Pertama kali akan menjalankan konstruktor Manager, ketika ketemu super() maka akan menjalankan konstruktor Employee (superclass), setelah semua statement dieksekusi baru kemudian menjalankan konstruktor Manager (subclass).

Virtual Method Invocation pada C++ Pada method yang akan dilakukan VMI harus ditandai dengan kata virtual.

Polymorphic Arguments Polymorphic arguments adalah tipe data suatu argumen pada suatu method yang bisa menerima suatu nilai yang bertipe subclass-nya.

Polymorphic Arguments

class Pegawai { … } class Manajer extends Pegawai { public class Tes { public static void Proses(Pegawai peg) { public static void main(String args[]) { Manajer man = new Manajer(); Proses(man);

Operator instanceof Pernyataan instanceof sangat berguna untuk mengetahui tipe asal dari suatu polymorphic arguments

Operator instanceof

… class Kurir extends Pegawai { } public class Tes { public static void Proses(Pegawai peg) { if (peg instanceof Manajer) { … lakukan tugas-tugas manajer… } else if (peg instanceof Kurir) { … lakukan tugas-tugas kurir… } else { … lakukan tugas-tugas lainnya… public static void main(String args[]) { Manajer man = new Manajer(); Kurir kur = new Kurir(); Proses(man); Proses(kur);

Casting object Seringkali pemakaian instanceof diikuti dengan casting object dari tipe parameter ke tipe asal.

Tanpa adanya casting obyek, maka nilai yang akan kita pakai setelah proses instanceof masih bertipe parent class-nya, sehingga jika ia perlu dipakai maka ia harus di casting dulu ke tipe subclass-nya.

… if (peg instanceof Manajer) { Manajer man = (Manajer) peg; …lakukan tugas-tugas manajer… }

Kenapa diperlukan polymorphic arguments? Mengefisienkan pembuatan program Misal Employee mempunyai banyak subclass. Maka kita harus mendefinisikan semua method yang menangani behavior dari masing-masing subclass. Dengan adanya polymorphic arguments kita cukup mendefinisikan satu method saja yang bisa digunakan untuk menangani behavior semua subclass.

Tanpa polymorphic arguments … public class Tes { public static void ProsesManajer() { …lakukan tugas-tugas manajer… } public static void ProsesKurir() { …lakukan tugas-tugas kurir…