Upload
abner
View
53
Download
0
Embed Size (px)
DESCRIPTION
Pemrograman Berorientasi Objek. Oleh : Sri Herawati, S.Kom. INHERITANCE. D3 MANAJEMEN INFORMATIKA FAKULTAS TEKNIK UNIVERSITAS TRUNOJOYO. Sub Topik. Inheritance (Pewarisan) Abstract class Abstract Method Interface. Inheritance. Inheritance merupakan salah satu dari 3 konsep dasar OOP. - PowerPoint PPT Presentation
Citation preview
Pemrograman Berorientasi Objek
INHERITANCE
Oleh :Sri Herawati, S.Kom
D3 MANAJEMEN INFORMATIKAFAKULTAS TEKNIK
UNIVERSITAS TRUNOJOYO
Sub Topik
• Inheritance (Pewarisan)
• Abstract class
• Abstract Method
• Interface
Inheritance
• Inheritance merupakan salah satu dari 3 konsep dasar OOP.
• Konsep inheritance ini mengadopsi dunia riil dimana suatu entitas/obyek dapat mempunyai entitas/obyek turunan.
• Dengan konsep inheritance, sebuah class dapat mempunyai class turunan.
Inheritance
• Suatu class yang mempunyai class turunan dinamakan parent class atau base class superclass
• Sedangkan class turunan itu sendiri seringkali disebut subclass atau child class.
• Suatu subclass dapat mewarisi apa-apa yang dipunyai oleh parent class.
• Misal :kelas B adalah kelas anak dari kelas A, maka sifat – sifat dari kelas A otomatis akan dimiliki juga oleh kelas B.
Inheratance
• Dengan menambahkan kata kunci extends setelah deklarasi nama class, kemudian diikuti dengan nama parent class-nya.
• Kata kunci extends tersebut memberitahu kompiler Java bahwa kita ingin melakukan perluasan class.
• Bentuk :
class kelasturunan extends kelasparent
{
tubuhkelas
}
Inheritance
• Kita baru perlu menerapkan inheritance pada saat kita jumpai ada suatu class yang dapat diperluas dari class lain.
• Konsep inheritance yang ada di Java adalah Java hanya memperkenankan adanya single inheritance.
• Konsep single inheritance hanya memperbolehkan suatu sublass mempunyai satu parent class.
Contoh : parent class
class Alpha{
private int a = 5;
public void info(){
System.out.println("a= "+a);
System.out.println("Dipanggil pada "+ this.getClass().getName());
}
}
Ket : this.getClass().getName() utk memperoleh nama kelas
Contoh : child class
class Bravo extends Alpha
{
public static void main(String[] args){
Bravo obj= new Bravo();
obj.info();
}
}
Hasil :
Penentu akses protected
• protected berguna utk mengatur agar suatu variabel instan atau metode yg terdapat pada sebuah kelas dpt diakses pada kelas itu sendiri dan sub kelas.
Contoh :parent class
class Alpha{
private int a = 5;
protected int b = 7;
public void info(){
System.out.println("Dipanggil pada "+ this.getClass().getName());
System.out.println("a= "+ a);
System.out.println("b= "+ b);
}
}
Contoh : child class
class Delta extends Alpha
{
private int c = 9;
public void info(){
System.out.println("Dipanggil pada " + this.getClass().getName());
System.out.println("b = " + b);
System.out.println("c = " + c);
}
}
Memanggil parent dan child class
class PenentuProtect
{
public static void main(String[] args){
Alpha objx = new Alpha();
objx.info();
Delta objy = new Delta();
objy.info();
}
}
Metode superkelas
• Cara untuk memanggil metode superkelas dari subkelas dgn kata kunci super yang berarti superkelas.
Contoh :
class Echo extends Alpha
{
private int c = 9;
public void info(){
super.info();
System.out.println("c = " + c);
}
}
class superkelas
{
public static void main(String[] args)
{
Echo obj = new Echo();
obj.info();
}
}
Konstruktor
• Konstruktor adalah metode yg dpt digunakan utk memberikan nilai awal saat objek diciptakan.
• Sifat kontruktor :
1. namanya sama dgn nama kelas
2. tidak memiliki nilai balik ( tdk boleh ada kata kunci void)
Contoh :
new Mobil(“Merah”, 2003)
Overloading
• Overloading adalah suatu mekanisme pembuatan kontruktor yg memiliki bentuk lebih dari satu.
• Misal:
new Mobil(“Merah”,2003)
new Mobil()
Contoh :
class Mobil{
//variabel instan
private String warna;
private int tahunproduksi;
//konstruktor pertama
public Mobil(String warna,int tahunproduksi){
this.warna = warna;
this.tahunproduksi=tahunproduksi;
}
//konstruktor kedua
public Mobil(){
}
//metode
public void info(){
System.out.println("Warna : " +this.warna);
System.out.println("Tahun : " +this.tahunproduksi);
}
}
public class kontruktor{
public static void main(String[] args){
Mobil mobilku = new Mobil("Merah", 2003);
mobilku.info();
Mobil mobilmu = new Mobil();
mobilmu.info();
}
}
Abstract class & Abstract Method
• Method abstract adalah suatu metode yg ditentukan dari dalam kelas tetapi tidak disertai dengan definisinya.
• Class abstract adalah kelas yg tidak disertai definisinya.
public abstract class kendaraan {
protected String nama;
public abstract void jalankan();
}
Contoh : class dan method abstact
Contoh :tesabstrakclass Sepeda extends kendaraan{
public Sepeda(String nama){
this.nama = nama;
}
public void jalankan(){
System.out.println("Duduklah di atas sadel " +this.nama + " dan kayuhlah..");
}
}
class Minibus extends kendaraan{
public Minibus(String nama){
this.nama = nama;
}
}
public void jalankan(){
System.out.println("Duduklah di atas setir " +this.nama + " dan hidupkan mesin..");
}
}
public class tesabstrak{
public static void main(String[] args){
Sepeda sepedaku = new Sepeda("sepeda ontel");
sepedaku.jalankan();
Minibus mobilku = new Minibus("Minibus Keri");
mobilku.jalankan();
}
}
Interface
• Interface adalah mekanisme yg memungkinkan berbagi konstanta atau menentukan bentuk metode yg dpt digunakan oleh sejumlah kelas.
• Variabel dlm interface hanya diperkenankan utk menggunakan public static final.
Mendeklarasikan interface
• Bentuk :
public interface namainterface{
//metode tanpa implementasi
//definisi konstanta
}
Menggunakan interface
• Sebuah class dpt menggunakan interface melalui kata kunci implements.
• Bentuk :class namakelas1 [extends namakelas2]
implements namainterface1[,namainterface2]{
//tubuh kelas
}
Contoh :
interface Intlampu{
public static final int keadaan_hidup =1;
public static final int keadaan_mati =0;
public abstract void hidupkan();
public abstract void matikan();
} //akhir interface
interface Intlampupenyuram extends Intlampu{
public static final int posisi_maks =10;
public static final int posisi_min =0;
public abstract void redupkan();
public abstract void buatlebihterang();
}
Contoh :
class lampupenyuram implements Intlampupenyuram{
private int statuslampu = 0;
public void hidupkan(){
this.statuslampu = posisi_maks;
System.out.print("hidupkan!: ");
System.out.print("Lampu hidup. ");
System.out.println("Posisi tombol : " + this.statuslampu);
}
public void matikan() {
this.statuslampu = posisi_min;
System.out.print("Matikan ! : ");
System.out.println("Lampu mati.");
}
Contoh:
public void redupkan(){
if (this.statuslampu != posisi_min);
this.statuslampu--;
System.out.print("redupkan! : ");
if (this.statuslampu ==posisi_min)
System.out.println("Lampu mati");
else {
System.out.print("Lampu Hidup. ");
System.out.println("Posisi tombol : " + this.statuslampu);
}
}
Contoh:
public void buatlebihterang(){
if (this.statuslampu != posisi_maks);
this.statuslampu++;
System.out.print("Buat lebih terang ");
System.out.print("Lampu Hidup. ");
System.out.println("Posisi tombol : " + this.statuslampu);
}
} //akhir kelas
Contoh:
public class tesinterface{
public static void main(String[] args){
lampupenyuram lampukamar = new lampupenyuram();
lampukamar.hidupkan();
lampukamar.redupkan();
lampukamar.redupkan();
lampukamar.buatlebihterang();
lampukamar.matikan();
lampukamar.buatlebihterang();
}
}