Inheritance (Pewarisan) As’ad Djamalilleil

Slides:



Advertisements
Presentasi serupa
Variabel di Java Variabel merupakan sebuah tempat untuk menyimpan data. Di Java setiap pembuatan variabel harus ditentukan tipe.
Advertisements

Java Progamming Operasi I/O
- PERTEMUAN 3- INHERITANCE
Nur Hayatin, S.ST Jurusan Teknik Informatika Universitas Muhammadiyah Malang Sem Genap 2010.
Package As’ad Djamalilleil
POLIMORFISME Imam Fahrur Rozi 01.
Struktur Kode Program MIDlet As’ad Djamalilleil
Pemrograman JAVA (TIB09)
Workshop SCS: Java Game Programming
Abstract & Interface As’ad Djamalilleil
Looping (perulangan) As’ad Djamalilleil
Pemrograman Berorientasi Objek
Instalasi JME & Uji Coba As’ad Djamalilleil
Inheritance Ery Setiyawan Jullev A.
Inheritance (Pewarisan)
7 Rekayasa Sistem Konsep Utama OOP Dedy Alamsyah, S.Kom.
Membuat Class Sendiri Atribut Pertemuan : Object Oriented Programming.
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.
Struktur Kode Aplikasi Java (1)
Pemrograman Berorientasi Objek
Inheritance (Pewarisan)
ABSTRACTION, ENCAPSULATION, INHERITANCE & POLYMORPHISM
Pemrograman Berorientasi Obyek Oleh Tita Karlita
As’ad Djamalilleil Function (method) As’ad Djamalilleil
- PERTEMUAN 4 - PERULANGAN
Pertemuan : Object Oriented Programming
Pemrograman Berorientasi Obyek dengan JAVA Interface
Inheritance Nana Ramadijanti Laboratorium Computer Vision Politeknik Elekltronika Negeri Surabaya PENS-ITS 2009.
Object Oriented Programming with JAVA 2011/2012
Inheritance Konsep Inheritance Protected Member
OOP Java 06 Polymorphism.
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
Pemrograman Berorientasi Obyek (PBO)
Kelas Lanjut 2 Oleh Tita Karlita.
INHERITANCE (Oleh : Nur Hayatin, S.ST)
OOP Java Minggu 2b Dasar OOP. Class (1) Deklarasi class : [ *] class { [ *] } Cat : [] = optional, * = repeat 0-N.
MATERI IV OOP (Object Oriented Programming) Chapter II.
Pertemuan 6 PEWARISAN AND POLYMORPHISM
INHERITANCE (PEWARISAN)
Access Modifier.
Inheritance dan Kata Kunci static
POLYMORPHISM (KEBANYAKRUPAAN)
Encapsulation, Inheritance, Polymorphism
POLYMORPHISM (KEBANYAKRUPAAN)
MODIFIER JAVA.
MEMBUAT CLASS SENDIRI 2.
As’ad Djamalilleil Class dan Object As’ad Djamalilleil
As’ad Djamalilleil Abstract & Interface As’ad Djamalilleil
Inheritance (Pewarisan)
As’ad Djamalilleil Package As’ad Djamalilleil
PACKAGE (FOLDER/DIREKTORI)
Inheritance.
Pilar Object Oriented Programming
INHERITANCE (PEWARISAN)
Encapsulation / Visibility, Getter Setter, Pewarisan, Overloading dan Overriding PBO.
Visibility, Getter Setter, Pewarisan, Overloading dan Overriding
Pemrograman Berorientasi Object
Algoritma dan Struktur Data
Pilar Object Oriented Programming
Pemrograman Berorientasi Object
Constructor, Overloading, inheritance, Polymorphism
Encapsulation / Visibility, Getter Setter, Pewarisan, Overloading dan Overriding Pemrograman.
Pertemuan 5 Inheritance
Encapsulation / Visibility, Getter Setter, Pewarisan, Overloading dan Overriding PBO.
Pemrograman Berorientasi Obyek (PBO) Disusun oleh : Khairan Marzuki, M.Kom Fakultas Teknik dan Kesehatan, Universitas Bumigora.
Transcript presentasi:

Inheritance (Pewarisan) As’ad Djamalilleil

Sekilas tentang pewarisan Seorang ayah dapat mewariskan beberapa sifat yang sama pada anak- anaknya, konsep tersebut dikenal dengan istilah inheritance Namun setiap anak dapat memiliki sifat yang berbeda dan tidak dimiliki oleh ayah maupun saudara-saudaranya, konsep ini dikenal dengan polymorphism

Inheritance adalah salah satu fitur pada Java yang digunakan untuk membuat beberapa class turunan (sub-class) dari sebuah class lain (super-class) Setiap sub-class dapat memiliki perbedaan bentuk (morph) di antara sub- sub class yang lain pada level yang sama Bentuk yang dimaksud adalah class member yang dimiliki oleh class tersebut

Class member diartikan sebagai property dan function yang dimiliki oleh sebuah class Class Gelas tinggi diameter kosong warna pegangan diisi( ) diminum( ) dipecahkan( ) isiMaksimum( ) class member dari class Gelas

Syntax Inheritance class subClass extends superClass { // definisi class } Keterangan: subClass  nama class turunan yang kita buat, merupakan sub-class dari sebuah class lain superClass  class yang kita ingin wariskan sifat-sifatnya ke class baru yang kita buat

Ilustrasi Inheritance subClass superClass > Hasil dari inheritance adalah class member pada superClass akan diwariskan kepada subClass Sehingga subClass JUGA memiliki class member yang sama dengan superClass (bergantung dari modifier yang diberikan)

Contoh kode dengan inheritance (9.1) class Kendaraan{ boolean mesin; int kapasitas; void jalan(){ } void berhenti(){ } class Mobil extends Kendaraan{ public static void main(String args[]){ Mobil sedan = new Mobil(); sedan.mesin = true; sedan.kapasitas = 5; sedan.jalan(); sedan.berhenti(); }

Ilustrasi program 9.1 Class Mobil merupakan turunan dari class Kendaraan, sehingga class member dari Kendaraan diwariskan kepada Mobil Class Mobil tidak perlu mendefinisikan ulang seluruh class member tersebut karena secara otomatis dimiliki oleh class Mobil class Kendaraan mesin kapasitas jalan( ) berhenti( ) > class Mobil mesin kapasitas jalan( ) berhenti( )

Sebelum menggunakan inheritance lebih jauh, ada baiknya kita pelajari terlebih dahulu tentang access level berupa beberapa macam modifier Modifier dapat digunakan untuk mengendalikan akses terhadap class maupun class member di dalam class tersebut

Access level sebuah class ModifierPackageSub-classClass lain publicYa tanpa modifierYaTidak

Class yang memiliki modifier public dapat terlihat oleh semua class lain Class yang tidak memiliki modifier (diistilahkan juga dengan package-private) hanya dapat terlihat oleh class-class yang berada dalam package yang sama dengan class tersebut

Contoh class modifier public //program 9.2a //nama file:Coba.java //class Coba berada //dalam package prog package prog; public class Coba{ }

//program 9.2b //nama file:Saja.java //class ini berada dalam package yg sama //dengan class Coba package prog; class Saja{ public static void main(String args[]){ Coba akses = new Coba(); }

//program 9.2c //nama file:Turunan.java //class ini berada di luar package prog //dan merupakan turunan dari class Coba import prog.Coba; class Turunan extends Coba{ }

//program 9.2d //nama file:Lagi.java //class ini berada di luar package prog import prog.Coba; class Lagi{ public static void main(String args[]){ Coba baca = new Coba(); }

Ilustrasi kode program 9.2 class Lagi package prog public class Coba class Saja Class Coba dapat diakses oleh class di luar package prog karena class Coba bersifat public class Turunan >

Class tanpa modifier Apabila program 9.2a kita modifikasi dengan menghilangkan modifier public, maka class Coba secara default akan dianggap memiliki modifier package- private Hasilnya adalah class Lagi dan Turunan tidak dapat lagi mengakses class Coba karena kedua class tersebut berada di luar dari package prog (package dimana class Coba tersimpan)

class Lagi package prog class Coba class Saja Class Coba tidak dapat diakses oleh class di luar package prog karena class Coba tidak memiliki modifier atau diistilahkan dengan package-private class Turunan >

Access level pada class member ModifierClassPackageSub- class Class lain publicYa protectedYa Tidak tanpa modifier Ya Tidak privateYaTidak

Class member yang memiliki modifier public dapat diakses oleh semua class dimanapun class itu berada Class member yang memiliki modifier protected dapat diakses hanya oleh class- class yang berada dalam package yang sama dan sub-class pada package yang lain Class member tanpa modifier hanya dapat diakses oleh class-class dalam package yang sama

Class member yang memiliki modifier private hanya dapat diakses dari dalam class tersebut saja Amati contoh kode program 9.3

//program 9.3a. Nama file:Coba.java package prog; public class Coba{ public int varA; protected int varB; int varC; private int varD; public static void main(String args[]){ Coba buat = new Coba(); buat.varA = 1; //sukses buat.varB = 3; //sukses buat.varC = 5; //sukses buat.varD = 7; //sukses }

//program 9.3b. Nama file:Saja.java package prog; class Saja{ public static void main(String args[]){ Coba akses = new Coba(); akses.varA = 1; //sukses akses.varB = 3; //sukses akses.varC = 5; //sukses akses.varD = 7; //error }

//program 9.3c. Nama file:Turunan.java import prog.Coba; class Turunan extends Coba{ public static void main(String args[]){ Turunan sifat = new Turunan(); sifat.varA = 1; //sukses sifat.varB = 3; //sukses sifat.varC = 5; //error sifat.varD = 7; //error }

//program 9.3d. Nama file:Lagi.java import prog.Coba; class Lagi{ public static void main(String args[]){ Coba baca = new Coba(); baca.varA = 1; //sukses baca.varB = 3; //error baca.varC = 5; //error baca.varD = 7; //error }

Ilustrasi kode program 9.3 package prog class Saja class Coba varA varB varC varD objek akses varA varB varC class Lagi objek baca varA class Turunan objek sifat varA varB >

Class Saja, Turunan, dan Lagi tidak dapat mengakses varD karena varD bersifat private sehingga hanya bisa diakses dari dalam class Coba Class Turunan dan Lagi tidak dapat mengakses varC karena varC bersifat package-private sehingga hanya bisa diakses dari dalam package prog Class Lagi tidak dapat mengakses varB karena varB bersifat protected sehingga hanya bisa diakses dari dalam package prog atau dari class yang merupakan sub- class Coba

Over-riding Over-riding terjadi bila sebuah function yang merupakan warisan dari super-class dialihkan (over-ride) atau didefinisi ulang isinya sehingga tidak lagi berisi definisi asli Teknik ini digunakan untuk mengubah definisi dari function agar lebih spesifik dan sesuai dengan sub-class yang dirancang Berikut adalah contoh over-riding (9.4)

// program 9.4. contoh over-riding class Kendaraan{ boolean mesin; int kapasitas; void jalan(){ System.out.println("kendaraan dijalankan"); } void berhenti(){} } class Mobil extends Kendaraan{ void jalan(){ System.out.println("masukkan kunci"); System.out.println("putar kunci"); System.out.println("injak gas"); }

public static void main(String args[]){ Mobil sedan = new Mobil(); sedan.jalan(); }

Class Kendaraan memiliki function jalan() dengan definisi tertentu Class Mobil merupakan sub-class dari class Kendaraan Pada class Mobil, definisi function jalan() yang baru meng-over-ride function jalan() dari class Kendaraan, sehingga apabila dijalankan maka akan memberikan output yang berbeda dengan function di super- class-nya

Polymorphism Poly  banyak. Morph  bentuk Polymorphism adalah teknik di Java yang berhubungan erat dengan inheritance Polymorphism diartikan sebagai beberapa sub-class yang berasal dari super-class yang sama namun memiliki karakteristik/bentuk yang berbeda di antara sub-sub class tersebut Perhatikan kode program 9.5 berikut:

//program 9.5. contoh polymorphism class Kendaraan{ boolean mesin; int kapasitas; void jalan(){} void berhenti(){} } class Mobil extends Kendaraan{ void injakRem(){} } class SepedaMotor extends Kendaraan{ boolean standard; void gantiOli(){} }

class Kendaraan mesin kapasitas jalan( ) berhenti( ) class Mobil mesin kapasitas jalan( ) berhenti( ) injakRem( ) class SepedaMotor mesin kapasitas jalan( ) berhenti( ) gantiOli( ) standard >

Class SepedaMotor dan Mobil merupakan sub-class dari Kendaraan Class SepedaMotor dan Mobil mewarisi class member dari Kendaraan Namun class SepedaMotor dan Mobil tidak identik karena masing-masing memiliki perbedaan bentuk SepedaMotor memiliki tambahan member, yaitu standard dan gantiOli() sedangkan Mobil memiliki tambahan member yaitu injakRem()