Overloading Methods
kadangkala
kita menginginkan untuk membuat method dengan nama yang sama namun
mempunyai fungsi yang berbeda menurut parameter yang digunakan. Kemampuan ini
dimungkinkan dalam pemrograman Java, dan dikenal sebagai overloading method.
Overloading
method mengijinkan sebuah method dengan nama yang sama namun
memiliki parameter yang berbeda sehingga mempunyai implementasi dan return
value yang berbeda pula. Daripada memberikan nama yang berbeda pada setiap
pembuatan method, overloading method dapat digunakan pada operasi
yang sama namun berbeda dalam implementasinya.
Sebagai
contoh, pada class StudentRecord kita menginginkan sebuah method yang
akan menampilkan informasi tentang siswa. Namun kita juga menginginkan operasi
penampilan data tersebut menghasilkan output yang berbeda menurut
parameter yang digunakan. Jika pada saat kita memberikan sebuah parameter
berupa string, hasil yang ditampilkan adalah nama, alamat dan umur dari siswa,
sedang pada saat kita memberikan 3 nilai dengan tipe double, kita
menginginkan method tersebut untuk menampilkan nama dan nilai dari
siswa. Untuk mendapatkan hasil yang sesuai, kita gunakan overloading method di
dalam deklarasi
class
StudentRecord.
public void print( String
temp ){
System.out.println("Name:"
+ name);
System.out.println("Address:"
+ address);
System.out.println("Age:"
+ age);
}
public void print(double
eGrade, double mGrade, double sGrade)
System.out.println("Name:"
+ name);
System.out.println("Math
Grade:" + mGrade);
System.out.println("English
Grade:" + eGrade);
System.out.println("Science
Grade:" + sGrade);
}
Jika
kita panggil pada method utama (main) :
public static void main(
String[] args )
{
StudentRecord annaRecord =
new StudentRecord();
annaRecord.setName("Anna");
annaRecord.setAddress("Philippines");
annaRecord.setAge(15);
annaRecord.setMathGrade(80);
annaRecord.setEnglishGrade(95.5);
annaRecord.setScienceGrade(100);
//overloaded methods
annaRecord.print(
annaRecord.getName() );
annaRecord.print(
annaRecord.getEnglishGrade(),
annaRecord.getMathGrade(),
annaRecord.getScienceGrade());
}
Kita
akan mendapatkan output pada panggilan pertama sebagai berikut :
Name:Anna
Address:Philippines
Age:15
Kemudian
akan dihasilkan output sebagai berikut pada panggilan kedua :
Name:Anna
Math Grade:80.0
English Grade:95.5
Science Grade:100.0
Jangan
lupakan bahwa overloaded method memiliki property sebagai berikut
:
1.
Nama yang sama
2.
Parameter yang berbeda
3.
Nilai kembalian (return) bisa sama
0 komentar:
Posting Komentar