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