Overloading Method
14.9. Overloading Method
Dalam class yang kita buat, dengan nama yang sama namun kadangkala kita menginginkan untuk
memiliki parameter yang berbeda membuat method dengan nama yang
sehingga mempunyai implementasi sama namun mempunyai fungsi yang
dan return value yang berbeda pula. berbeda menurut parameter yang
Daripada memberikan nama digunakan. Kemampuan ini yang berbeda pada setiap dimungkinkan dalam pemrograman pembuatan method, overloading Java, dan dikenal sebagai method dapat digunakan pada overloading method. Overloading operasi yang sama namun berbeda method mengijinkan sebuah method dalam implementasinya. Sebagai
2008 | Direktorat Pembinaan SMK
Bahasa Pemrograman Class
contoh, pada class StudentRecord hasil yang ditampilkan adalah nama, kita menginginkan sebuah method alamat dan umur dari siswa, sedang yang akan menampilkan informasi pada saat kita memberikan 3 nilai tentang siswa. Namun kita juga dengan tipe double, kita menginginkan operasi penampilan menginginkan method tersebut untuk data tersebut menghasilkan output menampilkan nama dan nilai dari yang berbeda menurut parameter siswa. Untuk mendapatkan hasil yang digunakan. Jika
yang sesuai, kita gunakan pada saat kita memberikan overloading method di dalam sebuah parameter berupa string, deklarasi class StudentRecord.
Program 14.14 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) :
Program 14.15 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 : 496
Direktorat Pembinaan SMK | 2008
Class Bahasa Pemrorgraman
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 Untuk mendeklarasikan constructor, method memiliki property sebagai
kita tulis,
berikut :
1. Nama yang sama <modifier> <className> (<parameter>*)
2. Parameter yang berbeda
3. Nilai kembalian (return) bisa sama
<statement>*
ataupun berbeda
Telah tersirat pada pembahasan Setiap class memiliki default sebelumnya, Constructor sangatlah constructor. Sebuah default
penting pada pembentukan sebuah constructor adalah constructor yang object. Constructor adalah method
tidak memiliki parameter apapun. dimana seluruh inisialisasi object
Jika sebuah class tidak memiliki ditempatkan. Berikut ini adalah constructor apapun, maka sebuah
property dari Constructor : default constructor akan dibentuk
1. Constructor memiliki nama yang secara implisit: Sebagai contoh, pada sama dengan class
class StudentRecord, bentuk default
2. Sebuah Constructor mirip dengan constructor akan terlihat seperti method pada umumnya, namun dibawah ini :
hanya informasi - informasi berikut
yang dapat ditempatkan pada public StudentRecord() header sebuah constructor, scope
atau identifikasi pengaksesan //area penulisan kode (misal: public), nama dari konstuktor dan parameter. }
3. Constructor tidak memiliki return Seperti telah kita bahas
value
4. Constructor tidak dapat dipanggil sebelumnya, sebuah constructor juga secara langsung, namun harus dapat dibentuk menjadi overloaded.
Dapat dilihat pada contoh sebagai dipanggil dengan menggunakan operator new pada pembentukan berikut :
sebuah class.
Program 14.16 public StudentRecord(){
2008 | Direktorat Pembinaan SMK
Bahasa Pemrograman Class
//area inisialisasi kode; }
public StudentRecord(String temp){ this.name = temp;
} public StudentRecord(String name, String address){ this.name = name; this.address = address;
} public StudentRecord(double mGrade, double eGrade, double sGrade){
mathGrade = mGrade; englishGrade = eGrade; scienceGrade = sGrade;
Untuk menggunakan constructor, kita gunakan kode – kode sebagai berikut :
public static void main( String[] args ) {
//membuat 3 objek StudentRecord annaRecord=new StudentRecord("Anna"); StudentRecord beahRecord=new StudentRecord("Beah","Philippines"); StudentRecord crisRecord=new StudentRecord(80,90,100); //area penulisan kode selanjtunya
Sebelum kita lanjutkan, mari kita nilai dari studentCount setiap kali perhatikan kembali deklarasi variabel
setiap pembentukan object pada static studentCount yang telah dibuat
class StudentRecord. Lokasi yang sebelumnya. Tujuan deklarasi tepat untuk memodifikasi dan studentCount adalah untuk menambahkan nilai studentCount menghitung jumlah object yang
terletak pada constructor-nya, karena dibentuk pada class StudentRecord.
selalu dipanggil setiap kali objek Jadi, apa yang akan kita lakukan terbentuk. Perhatikan contoh sebagai selanjutnya adalah menambahkan berikut:
Program 14.17 public StudentRecord(){
//letak kode inisialisasi
studentCount++; //menambah student
} public StudentRecord(String temp){
this.name = temp;
studentCount++; //menambah student
Direktorat Pembinaan SMK | 2008
Class Bahasa Pemrorgraman
} public StudentRecord(String name, String address){
this.name = name; this.address = address;
studentCount++; //menambah student
} public StudentRecord(double mGrade, double eGrade, double sGrade){
mathGrade = mGrade; englishGrade = eGrade; scienceGrade = sGrade;
studentCount++; //menambah student
Pemanggilan constructor dapat Pemanggilan dapat dilakukan dengan dilakukan secara berangkai, dalam referensi this(). Perhatikan contoh arti Kita dapat memanggil constructor
kode sebagai berikut : di dalam constructor lain.
Program 14.18 public StudentRecord(){ this("some string");
public StudentRecord(String temp){ this.name = temp; }
public static void main( String[] args ) {
StudentRecord annaRecord = new StudentRecord(); }
1. Harus dituliskan pada baris saat baris ke 13 dipanggil akan
Dari contoh kode diatas, pada
pertama pada sebuah constructor memanggil constructor dasar pada
2. Hanya dapat digunakan pada satu baris pertama. Pada saat baris kedua
definisi constructor. Kemudian dijalankan, baris tersebut akan
metode ini dapat diikuti dengan menjalankan constructor yang kode – kode berikutnya yang memiliki parameter String pada baris
relevan
ke-6. Beberapa hal yang patut diperhatikan pada penggunaan this():
2008 | Direktorat Pembinaan SMK
Bahasa Pemrograman Class