program ini menerapkan konsep polimerfisme, langsung kita tengok dan bahas program dibawah :
pertama kita buat class induk atau superclass, yaitu dengan nama Geometri, pada kelas ini kita hanya akan menampung satu variabel dan satu method.
code #1: membuat superclass dengan nama Geometri
class Geometri{
protected double luas = 0;
public void Luas(){
System.out.println("Kosong");
}
}
selanjutnya kita buat subclassnya, yaitu dengan nama PersegiPanjang.
code #2: membuat subclass pertama dengan nama PersegiPanjang:
class PersegiPanjang extends Geometri{
private double panjang;
private double lebar;
public PersegiPanjang(double panjang, double lebar){
this.panjang = panjang;
this.lebar = lebar;
System.out.println("Panjang = " + panjang);
System.out.println("Lebar = " + lebar);
}
public void Luas(){
luas = panjang * lebar;
System.out.println("Persegi Panjang");
System.out.println("Luas = " + luas);
}
}
pada subclass PersegiPanjang, mempunya tiga variabel dan tiga method, yaitu variabel yang diturunkan dari superclass Geometri protected double luas = 0; dan dua variabel yang dibuat didalamnya yaitu private double panjang;dan private double lebar;.sekarang perhatikan method public PersegiPanjang(double panjang, double lebar), ini adalah construktor karena namanya sama persis dengan nama classnya, dan mempunyai dua parameter yaitu (double panjang, double lebar),Perintah this.panjang dan this.lebar mengacu kepada variabel class bukan variabel method atau parameternya. perhatikan nama variabel class dan variabel methodnya sama persis, untuk itulah kita perlu memakai perintah this, guna untuk menandakan bahwa variabel yang dituju adalah variabel class. selanjutnya kita perhatikan method public void Luas(), pada superclass juga sudah dibuat method dengan nama yang sama, pada saat pemanggilan method yang akan dipakai adalah yang berada subclass yaitu pada class PersegiPanjang. method inilah yang menerapkan konsep polymerfisme.
code #3: menambah subclass dengan nama SegiTiga
class SegiTiga extends Geometri{
private double alas;
private double tinggi;
public SegiTiga(double alas, double tinggi){
this.alas = alas;
this.tinggi = tinggi;
System.out.println("Alas = " + alas);
System.out.println("Tinggi = " + tinggi);
}
public void Luas(){
luas = (alas * tinggi) / 2;
System.out.println("SegiTiga");
System.out.println("Luas = " + luas);
}
}
private double alas;
private double tinggi;
public SegiTiga(double alas, double tinggi){
this.alas = alas;
this.tinggi = tinggi;
System.out.println("Alas = " + alas);
System.out.println("Tinggi = " + tinggi);
}
public void Luas(){
luas = (alas * tinggi) / 2;
System.out.println("SegiTiga");
System.out.println("Luas = " + luas);
}
}
penjelasan pada subclass ini sama dengan subclass sebelumnya. selanjutnya kita membuat class baru yang akan menampung method main:
code #4: membuat class baru untuk menampung method main
public class DemoGeometri{
public static void main(String[] args){
Geometri yeah;
PersegiPanjang yes = new PersegiPanjang(5, 6);
SegiTiga oyes = new SegiTiga(4, 5);
yeah = yes;
yeah.Luas();
yeah = oyes;
yeah.Luas();
}
}
public static void main(String[] args){
Geometri yeah;
PersegiPanjang yes = new PersegiPanjang(5, 6);
SegiTiga oyes = new SegiTiga(4, 5);
yeah = yes;
yeah.Luas();
yeah = oyes;
yeah.Luas();
}
}
perintah Geometri yeah;, merupakan instansiasi objek untuk kelas induk atau superclass yaitu dengan nama yeah.perhatikan perintah PersegiPanjang yes = new PersegiPanjang(5, 6);, ini adalah proses instansiasi objek terhadap class PersegiPanjang, yaitu objeknya dnegan nama yes, dan sekaligus mengisi nilai dengan menggunakan construktor. (5, 6) akan masuk kedalam variabel method kemudian setelah itu akan dipindahkan ke variabel class. begitu juga dengan perintah SegiTiga oyes = new SegiTiga(4, 5);.
sehingga final codenya akan seperti berikut :
class Geometri{
protected double luas = 0;
public void Luas(){
System.out.println("Kosong");
}
}
class PersegiPanjang extends Geometri{
private double panjang;
private double lebar;
public PersegiPanjang(double panjang, double lebar){
this.panjang = panjang;
this.lebar = lebar;
System.out.println("Panjang = " + panjang);
System.out.println("Lebar = " + lebar);
}
public void Luas(){
luas = panjang * lebar;
System.out.println("Persegi Panjang");
System.out.println("Luas = " + luas);
}
}
class SegiTiga extends Geometri{
private double alas;
private double tinggi;
public SegiTiga(double alas, double tinggi){
this.alas = alas;
this.tinggi = tinggi;
System.out.println("Alas = " + alas);
System.out.println("Tinggi = " + tinggi);
}
public void Luas(){
luas = (alas * tinggi) / 2;
System.out.println("SegiTiga");
System.out.println("Luas = " + luas);
}
}
public class DemoGeometri{
public static void main(String[] args){
Geometri yeah;
PersegiPanjang yes = new PersegiPanjang(5, 6);
SegiTiga oyes = new SegiTiga(4, 5);
yeah = yes;
yeah.Luas();
yeah = oyes;
yeah.Luas();
}
}
0 comments:
Post a Comment