PBO 2017 TEKNIK INFORMATIKA UTM
Abstract class adalah kelas yang
terletak pada posisi tertinggi pada hierarki kelas. Kelas ini digunakan sebagai
basis bagi penurunan kelas lainnya, sehingga abstract class tidak dapat
diinstansiasi secara langsung menjadi object. Suatu abstract class bisa mengandung
method kongkrit dan/atau method abstract. Abstract method meruapakan suatu
method yang tidak mempunyai badan method. Hanya berupa nama method dan
parameter inputan method.
package .....;
public abstract class Hewan {
//
Deklarasi method
public abstract void data(String nama,
string ttl);
public void mHewan(){
system.out.println("Hewan : Kelinci");
}
|
Concrete
Class adalah
suatu class turunan, yang mengimplementasi ,method yang di deklarasikan
pada class Abstract.
package .....;
public abstract class Hewan {
//
Deklarasi method
abstract void setMakanan();
abstract
void setWarna();
abstract void setName();
}
Kode program diatas
artinya : Mendeklarasikan abstract class dengan nama Hewan yang di dalamnya
terkandung abstract method setName,setMakanan, dan setWarna.Kemudian mari
kita buat subclass Kelinci yang inherit dari superclass diatas, seperti
berikut ini
public class Kelinci extends Hewan {
public void setName(){
System.out.println("Nama
hewan adalah \"KELINCI\"");
}
public void setMakanan(){
System.out.println("Makanan
kelinci adalah \"WORTEL\"");
}
public void setWarna(){
System.out.println("Warna
kelinci \"PUTIH\"");
}
public static void main(String[]
args){
Kelinci
k = new Kelinci();
k.setName();
k.setMakanan();
k.setWarna();
}
}
|
|
Interface adalah class yang hanya mengandung
deklarasi method tanpa memiliki implementasi dan semua property yang
dimilikinya bersifat final. Interface mirip dengan
class abstrak, tetapi interface tidak terikat dengan class hierarki.
public interface Control {
public void pindahChannel(int channel);
public void perbesarVolume(int intensitas);
public void perkecilVolume(int intensitas);
}
public class TVPolitron implements Control{
String[] channel = {"RCTI","SCTV","INDOSIAR","ANTV","TV7"};
public void pindahChannel(int channel) {
System.out.println("Pindah channel pada TV Politron ke "+ this.channel[channel]);
}
public void perbesarVolume(int intensitas) {
System.out.println("Perbesar volume pada TV Politron sebanyak "+ intensitas);
}
public void perkecilVolume(int intensitas) {
System.out.println("Perkecil volume pada TV Politron sebanyak "+ intensitas);
}
}
public class TVSamsung implements Control{
String[] channel = {"RCTI","SCTV","INDOSIAR","ANTV","TV7"};
public void pindahChannel(int channel) {
System.out.println("Pindah channel pada TV Samsung ke "+ this.channel[channel]);
}
public void perbesarVolume(int intensitas) {
System.out.println("Perbesar volume pada TV Samsung sebanyak "+ intensitas);
}
public void perkecilVolume(int intensitas) {
System.out.println("Perkecil volume pada TV Samsung sebanyak "+ intensitas);
}
}
public class RemoteControl {
public void kirimPerintahKeTv(int aksi,Control tv,int tombol){
switch(aksi){
case 1:
tv.pindahChannel(tombol);
break;
case 2:
tv.perbesarVolume(tombol);
break;
case 3:
tv.perkecilVolume(tombol);
break;
}
}
}
public class TestRemoteControl {
public static void main(String[] args){
TVPolitron tvp = new TVPolitron();
TVSamsung tvs = new TVSamsung();
RemoteControl rc = new RemoteControl();
rc.kirimPerintahKeTv(1,tvp,1);
}
}
public void pindahChannel(int channel);
public void perbesarVolume(int intensitas);
public void perkecilVolume(int intensitas);
}
public class TVPolitron implements Control{
String[] channel = {"RCTI","SCTV","INDOSIAR","ANTV","TV7"};
public void pindahChannel(int channel) {
System.out.println("Pindah channel pada TV Politron ke "+ this.channel[channel]);
}
public void perbesarVolume(int intensitas) {
System.out.println("Perbesar volume pada TV Politron sebanyak "+ intensitas);
}
public void perkecilVolume(int intensitas) {
System.out.println("Perkecil volume pada TV Politron sebanyak "+ intensitas);
}
}
public class TVSamsung implements Control{
String[] channel = {"RCTI","SCTV","INDOSIAR","ANTV","TV7"};
public void pindahChannel(int channel) {
System.out.println("Pindah channel pada TV Samsung ke "+ this.channel[channel]);
}
public void perbesarVolume(int intensitas) {
System.out.println("Perbesar volume pada TV Samsung sebanyak "+ intensitas);
}
public void perkecilVolume(int intensitas) {
System.out.println("Perkecil volume pada TV Samsung sebanyak "+ intensitas);
}
}
public class RemoteControl {
public void kirimPerintahKeTv(int aksi,Control tv,int tombol){
switch(aksi){
case 1:
tv.pindahChannel(tombol);
break;
case 2:
tv.perbesarVolume(tombol);
break;
case 3:
tv.perkecilVolume(tombol);
break;
}
}
}
public class TestRemoteControl {
public static void main(String[] args){
TVPolitron tvp = new TVPolitron();
TVSamsung tvs = new TVSamsung();
RemoteControl rc = new RemoteControl();
rc.kirimPerintahKeTv(1,tvp,1);
}
}
Kapan kita harus
menggunakan abstact ?
Saat kita menggunakan
method yang sama secara berulang-ulang.Seperti contoh diatas.
Kapan kita harus menggunakan
concrete ?
Saat kita menggunakan
turunan dari class abstract.Seperti contoh diatas.
Kapan kita harus
menggunkan interface ?
Saat tidak ada method
yang digunkan secara berulang-ulang. Seperti contoh diatas.
Comments
Post a Comment