Mengenal Overloading dan Overriding
Overloading
Method Overloading adalah sebuah kemampuan yang membolehkan sebuah class mempunyai 2 atau lebih method dengan nama yang sama, yang membedakan adalah parameternya.Pada method overloading perbedaan parameter mencakup :
- Jumlah parameter
- Tipe data dari parameter
- Urutan dari tipe data parameter
Overriding
Method overriding merupakan method yang parrent class yang ditulis kembali oleh subclass. Aturan dari method overriding pada Java :Parameter yang terdapat pada method overriding di subclass harus sama dengan parameter yang terdapat pada parent class.
Aturan hak akses, hak akses method overriding di subclass tidak boleh lebih ketat di bandingkan dengan hak akses method pada parent class.
Contoh :
Source Code Bangun Datar
/**
* Write a description of class BangunDatar here.
*
* @author (your name)
* @version (a version number or a date)
*/
public class BangunDatar
{
public void hitungLuas()
{
System.out.println("belum terdefinisi luas yang di hitung");
}
public void hitungKeliling()
{
System.out.println("belum terdefinisi keliling apa yang di hitung\n");
}
}
Source Code Lingkaran
/**
* Write a description of class Lingkaran here.
*
* @author (your name)
* @version (a version number or a date)
*/
public class Lingkaran extends BangunDatar
{
public final double phi=22.7;
double r;
public Lingkaran()
{
r=7;
}
public Lingkaran(double inputR)
{
this.r=inputR;
}
public double getR()
{
return r;
}
public void setR(double inputR)
{
this.r=inputR;
}
public void hitungLuas()
{
double luas;
luas=phi*this.r;
System.out.println("luas Lingkaran dengan r: "+r+" cm adalah "+luas+" cm kuadrat.");
}
public void hitungKeliling()
{
double keliling;
keliling = 2*phi*this.r;
System.out.println("keliling Lingkaran dengan r: "+r+" cm adalah "+keliling+" cm.\n");
}
}
Source Code Segitiga
/**
* Write a description of class Segitiga here.
*
* @author (your name)
* @version (a version number or a date)
*/
public class Segitiga extends BangunDatar
{
double alas, tinggi, hipotenusa;
public Segitiga()
{
alas = 6;
tinggi = 8;
hipotenusa = 10;
}
public Segitiga(double inputAlas)
{
this.alas = inputAlas;
tinggi = 10;
hipotenusa = 21;
}
public Segitiga(double inputAlas, double inputTinggi)
{
this.alas = inputAlas;
this.tinggi = inputTinggi;
hipotenusa = 15;
}
public Segitiga(double inputAlas, double inputTinggi, double inputHipotenusa)
{
this.alas = inputAlas;
this.tinggi = inputTinggi;
this.hipotenusa = inputHipotenusa;
}
public double getAlas()
{
return alas;
}
public void setAlas(double inputAlas)
{
this.alas = inputAlas;
}
public double getTinggi()
{
return tinggi;
}
public void setTinggi(double inputTinggi)
{
this.tinggi = inputTinggi;
}
public double getHipotenusa()
{
return hipotenusa;
}
public void setHipotenusa(double inputHipotenusa)
{
this.hipotenusa = inputHipotenusa;
}
public void hitungLuas()
{
double luas;
luas = 0.5 * this.alas * this.tinggi;
System.out.println("luas Segitiga dengan alas: "+alas+" cm, tinggi: "+tinggi+" cm, dan sisi miring: "+hipotenusa+" cm adalah "+luas+" cm kuadrat.");
}
public void hitungKeliling()
{
double keliling; //deklarasi variabel lokal
keliling = alas + tinggi + hipotenusa;
System.out.println("keliling Segitiga dengan alas: "+alas+" cm, tinggi: "+tinggi+" cm, dan sisi miring: "+hipotenusa+" cm adalah "+keliling+" cm.\n");
}
}
Source Code Bujur Sangkar
/**
* Write a description of class BujurSangkar here.
*
* @author (your name)
* @version (a version number or a date)
*/
public class BujurSangkar extends BangunDatar
{
double alas, tinggi, hipotenusa;
public BujurSangkar()
{
alas = 3;
tinggi = 4;
hipotenusa = 5;
}
public BujurSangkar(double inputAlas)
{
this.alas = inputAlas;
tinggi = 12;
hipotenusa = 27;
}
public BujurSangkar(double inputAlas, double inputTinggi)
{
this.alas = inputAlas;
this.tinggi = inputTinggi;
hipotenusa = 14;
}
public BujurSangkar(double inputAlas, double inputTinggi, double inputHipotenusa)
{
this.alas = inputAlas;
this.tinggi = inputTinggi;
this.hipotenusa = inputHipotenusa;
}
public double getAlas()
{
return alas;
}
public void setAlas(double inputAlas)
{
this.alas = inputAlas;
}
public double getTinggi()
{
return tinggi;
}
public void setTinggi(double inputTinggi)
{
this.tinggi = inputTinggi;
}
public double getHipotenusa()
{
return hipotenusa;
}
public void setHipotenusa(double inputHipotenusa)
{
this.hipotenusa = inputHipotenusa;
}
public void hitungLuas()
{
double luas;
luas = this.alas * this.tinggi;
System.out.println("luas Bujur Sangkar dengan alas: "+alas+" cm, tinggi: "+tinggi+" cm, dan hipotenusa: "+hipotenusa+" cm adalah "+luas+" cm kuadrat.");
}
public void hitungKeliling()
{
double keliling; //deklarasi variabel lokal
keliling = 2 * (alas + hipotenusa);
System.out.println("keliling Bujur Sangkar dengan alas: "+alas+" cm, tinggi: "+tinggi+" cm, dan hipotenusa: "+hipotenusa+" cm adalah "+keliling+" cm.\n");
}
}
Source Code Persegi Panjang
/**
* Write a description of class PersegiPanjang here.
*
* @author (your name)
* @version (a version number or a date)
*/
public class PersegiPanjang extends BangunDatar
{
double panjang, lebar;
public PersegiPanjang()
{
panjang = 10;
lebar = 14;
}
public PersegiPanjang(double inputPanjang)
{
this.panjang = inputPanjang;
lebar = 11;
}
public PersegiPanjang(double inputPanjang, double inputLebar)
{
this.panjang = inputPanjang;
this.lebar = inputLebar;
}
public double getPanjang()
{
return panjang;
}
public void setPanjang(double inputPanjang)
{
this.panjang = inputPanjang;
}
public double getLebar()
{
return lebar;
}
public void setLebar(double inputLebar)
{
this.lebar = inputLebar;
}
public void hitungLuas()
{
double luas;
luas = this.panjang * this.lebar;
System.out.println("luas Persegi Panjang dengan panjang: "+panjang+" cm dan lebar: "+lebar+" cm adalah "+luas+" cm kuadrat.");
}
public void hitungKeliling()
{
double keliling; //deklarasi variabel lokal
keliling = 2 * (panjang + lebar);
System.out.println("keliling Persegi Panjang dengan panjang: "+panjang+" cm dan lebar: "+lebar+" cm adalah "+keliling+" cm.\n");
}
}
Source Code Bangun Datar Test
/**
* Write a description of class BangunDatarTest here.
*
* @author (your name)
* @version (a version number or a date)
*/
public class BangunDatarTest
{
public static void main(String[] args)
{
BangunDatar bd = new BangunDatar();
bd.hitungLuas();
bd.hitungKeliling();
Lingkaran l = new Lingkaran();
l.hitungLuas();
l.hitungKeliling();
Lingkaran l1 = new Lingkaran(9);
l1.hitungLuas();
l1.hitungKeliling();
Segitiga s = new Segitiga();
s.hitungLuas();
s.hitungKeliling();
Segitiga s1 = new Segitiga(15);
s1.hitungLuas();
s1.hitungKeliling();
Segitiga s2 = new Segitiga(7, 9);
s2.hitungLuas();
s2.hitungKeliling();
Segitiga s3 = new Segitiga(3, 4, 5);
s3.hitungLuas();
s3.hitungKeliling();
BujurSangkar bs = new BujurSangkar();
bs.hitungLuas();
bs.hitungKeliling();
BujurSangkar bs1 = new BujurSangkar(15);
bs1.hitungLuas();
bs1.hitungKeliling();
BujurSangkar bs2 = new BujurSangkar(7, 11);
bs2.hitungLuas();
bs2.hitungKeliling();
BujurSangkar bs3 = new BujurSangkar(6, 8, 10);
bs3.hitungLuas();
bs3.hitungKeliling();
PersegiPanjang pp = new PersegiPanjang();
pp.hitungLuas();
pp.hitungKeliling();
PersegiPanjang pp1 = new PersegiPanjang(7);
pp1.hitungLuas();
pp1.hitungKeliling();
PersegiPanjang pp2 = new PersegiPanjang(4, 5);
pp2.hitungLuas();
pp2.hitungKeliling();
}
}
Hasil:Terimah Kasih :D
Komentar
Posting Komentar