Tugas PBO 2017, Teknik Informatika UTM
Definisi
Definisi
Abstract Classs ;
- Tidak dapat digunakan untuk
membentuk objek
- Dapat memiliki method abstrak
- Digunakan sebagai base class
untuk membentuk class konkrit (concrete class)
- Dibentuk dengan menggunakan kata
kunci abstract pada saat definisi class
- Abstract class yaitu sebuah
class setengah jadi (abstrak) yang memuat/memiliki method dan atrribut.
- Abstract class sebenarnya adalah
sebuah class, sehingga memiliki semua sifat dari class biasa (punya
konstruktor).
- Abstract class akan selalu
menjadi superclass / hirarki tertinggi dari subclass-subclass-nya.
- Abstract class mempunyai
setidaknya satu abstract method.
- Bila subclass method abstract
tidak mengimplementasikan isi semua method maka subclass tersebut harus
dideklarasikan abstract.
Concrete Class ;
- Mendefinisikan class yang nyata
- Dapat membentuk atau instansiasi
object
- Object hanya bisa dibuat dari
non-abstract class (concrete class)
- Dapat menurunkan implementasi
dari super class
- Dapat sebagai base class pada
hierarchical relationship dan membutuhkan class lain untuk mewarisinya
Interface ;
- Interface berbeda dengan class.
- Interface berisi method kosong
dan konstanta.
- Method dalam interface tidak mempunyai
statement.
- Sehingga deklarasi method dalam
interface sama dengan deklarasi abstract method pada abstract class.
Contoh Program Abstract dan Concrete
Ø Langkah pertama kita akan buat Class
MakhlukHidup.java
public abstract class
MakhlukHidup {
public abstract void berdiri();
public void oksigen() {
System.out.println("- Butuh Oksigen");
System.out.println("- Butuh Makan");
System.out.println("- Butuh Minum");
}
}
Ø Selanjutnya buat Class Manusia.java
dan extends ke MakhlukHidup.java
public class Manusia
extends MakhlukHidup{
private String duaKaki;
public Manusia(String duaKaki) {
this.duaKaki = duaKaki;
}
public void berdiri() {
System.out.println("Manusia Berdiri menggunakan :
" + duaKaki);
}
}
Ø Buat Class Hewan.java dan extends ke
MakhlukHidup.java
public class Hewan
extends MakhlukHidup{
private String kakiEmpat, kakiDua;
public Hewan (String kakiEmpat, String kakiDua) {
this.kakiEmpat = kakiEmpat;
this.kakiDua = kakiDua;
}
public void berdiri() {
System.out.println("Sapi Berdiri menggunakan :
" + kakiEmpat);
System.out.println("Pinguin Berdiri menggunakan :
" + kakiDua);
}
}
Ø Buat lagi Class Tumbuhan.java dan
extends ke MakhlukHidup.java
public class Tumbuhan
extends MakhlukHidup{
private String Akar;
public Tumbuhan (String Akar) {
this.Akar = Akar;
}
public void berdiri() {
System.out.println("Tumbuhan Berdiri menggunakan
: " + Akar);
}
}
Ø Yang terakhir buat Class
MainMakhlukHidup.java sebagai method mainnya
public class
MainMakhlukHidup {
public void cekMakhlukHidup (MakhlukHidup mHidup) {
mHidup.berdiri();
mHidup.oksigen();
}
public static void main(String[] args) {
MainMakhlukHidup tMakhlukHidup = new
MainMakhlukHidup();
tMakhlukHidup.cekMakhlukHidup(new Manusia("Dua
Kaki"));
System.out.println("_____________________________________________");
tMakhlukHidup.cekMakhlukHidup(new Hewan ("Empat
Kaki", "Dua Kaki"));
System.out.println("_____________________________________________");
tMakhlukHidup.cekMakhlukHidup(new
Tumbuhan("Akar"));
}
}
Hasil Run Program
Contoh Program
Interface
Ø
Langkah Pertama Buat Interface Name.java
public interface Name {
public void setNama(String Nama);
public String getNama();
public void setNim(String nim);
public String getNim();
}
Ø
Membuat class Name1.java implements ke interface
Name.java
public class Name1 implements Name{
private String nama, nim;
public void setNama(String nama)
{
this.nama = nama;
}
public String getNama() {
return nama;
}
public void setNim(String nim) {
this.nim = nim;
}
public String getNim() {
return nim;
}
}
Ø
Membuat class Name2.java implements ke Name.java
public class Name2 implements Name{
private String nama, nim;
public void setNama(String nama)
{
this.nama = nama;
}
public String getNama() {
return nama;
}
public void setNim(String nim) {
this.nim = nim;
}
public String getNim() {
return nim;
}
}
Ø
Membuat MainInterface.java
public class MainInterface {
public static void main(String[]
args) {
Name1 n1 = new
Name1();
n1.setNama("Rosi");
n1.setNim("160411100042");
Name2 n2 = new
Name2();
n2.setNama("Kagura");
n2.setNim("160411100152");
System.out.println(n1.getNama());
System.out.println(n1.getNim());
System.out.println("________________________________");
System.out.println(n2.getNama());
System.out.println(n2.getNim());
}
}
Hasil Run Program
Kapan menggunakannya ?
Menggunakan
interface untuk mendefinisikan method standart yang sama dalam class – class
yang berbeda sekali kita telah membuat kumpulan definisi method standar
(abstrak), kita dapat menulis method tunggal (spesifik) untuk memanipulasi
semua class – class yang mengimplementasikan interface tersebut.
Gunakan
class abstract untuk mendefinisikan secara luas sifat – sifat dari class
tertinggi dari hirarki OOP, dan gunakan sebclassnya (turunannya / child class)
untuk melengkapi deskripsi method dari class abstract.