Cara Menggunakan Method Overloading Java dan Fungsinya
- Mendefinisikan Metode dengan Parameter yang Berbeda: Method overloading memungkinkan untuk mendefinisikan beberapa metode dengan nama yang sama, tetapi dengan parameter yang berbeda. Ini dapat dilakukan dengan mengubah jumlah parameter, tipe data parameter, atau urutan parameter.
- Memanggil Metode Sesuai dengan Argumen yang Diberikan: Saat memanggil metode yang di-overload, Java akan menentukan metode mana yang harus dipanggil berdasarkan jumlah dan tipe argumen yang diberikan. Java akan memilih metode yang paling cocok dengan tipe argumen yang diberikan.
// Program Java
// mendemonstrasikan kerja
// dari method overloading
// pada Java.
public class Sum {
// melakukan overloading sum()
// yang mengambil dua
// parameter int.
public int sum(int x, int y)
{return (x + y);}
// melakukan overloading sum()
// yang mengambil tiga
// parameter int.
public int sum(int x, int y, int z)
{return (x + y + z);}
// melakukan overloading sum()
// yang mengambil dua
// parameter double.
public double sum(double x, double y)
{return (x + y);}
/* Driver code */
public static void main(String args[])
{
Sum s = new Sum();
System.out.println(s.sum(10, 20));
System.out.println(s.sum(10, 20, 30));
System.out.println(s.sum(10.5, 20.5));
}
}
60
31.0
Jika Prototipe Tidak Cocok dengan Argumen
Secara prioritas, kompilator akan mengambil langkah-langkah berikut ini:- Ketik Conversion tetapi dengan tipe yang lebih tinggi (dalam hal rentang) pada 'family' yang sama.
- Ketik Conversion ke 'family' yang lebih tinggi selanjutnya jika tidak terdapat tipe data long yang tersedia untuk tipe data int, maka yang akan dicari adalah tipe data float. Berikut adalah contoh dari penerapan konsep tersebut:
class Demo
{
public void show(int x)
{System.out.println("In int"
+x);}
public void show(String s)
{System.out.println("In"
+" String"
+s);}
public void show(byte b)
{System.out.println("In"
+" byte"
+b);}
}
class UseDemo
{
public static void main(String[] args)
{byte a = 25;
Demo obj = new Demo();
// akan menuju ke argumen byte
obj.show(a);
// String
obj.show("hello");
// Int
obj.show(250);
// Ketika tipe data char tidak
// tersedia, maka tipe data
// yang lebih tinggi dari char
// dalam hal rentang adalah
// int.
obj.show('A');
// String
obj.show("A");
// Ketika tipe data float
// tidak tersedia dan juga
// bukan merupakan tipe data
// yang lebih tinggi, maka
// pada tahap ini akan terjadi
// error.
obj.show(7.5);}
}
Keuntungan dari Overloading
Keuntungannya adalah tidak perlu menciptakan dan mengingat nama-nama fungsi yang berbeda untuk melakukan tugas yang sama. Contohnya, pada program berikut ini jika overloading tidak didukung oleh Java, maka harus diciptakan method dengan nama sum1, sum2, ..., dan seterusnya.Method Overloading pada Tipe Return
Tidak bisa dilakukan overloading oleh tipe return. Behavior ini juga sama pada C++, berikut contoh program untuk rincian lebih lengkap dari pemahaman tersebut.public class Main
{
public int foo() { return 10; }
// compiler error: foo() sudah
// didefinisikan.
public char foo() { return 'a'; }
public static void main(String args[]){}
}
// Program Java untuk
// mendemonstrasikan kerja
// dari method overloading
// pada static method.
public class Main {
public static int foo(int a) { return 10; }
public static char foo(int a, int b) { return 'a'; }
public static void main(String args[])
{
System.out.println(foo(1));
System.out.println(foo(1, 2));
}
}
a
// Program Java
// mendemonstrasikan kerja
// dari method overloading
// dalam sebuah method.
class A
{
public int foo(int a)
{return 10;}
public char foo(int a, int b)
{return 'a';}
}
public class Main
{
public static void main(String args[])
{A a = new A();
System.out.println(a.foo(1));
System.out.println(a.foo(1, 2));}
}
a
Overloading pada method static
Method static dapat memiliki lebih dari satu static method dengan nama yang sama, tetapi berbeda pada input parameternya.Method Overloading yang berbeda hanya pada bagian keyword static
Tidak dapat dilakukan overloading dua method pada Java jika berbeda hanya pada keyword static-nya saja atau angka dari parameter dan tipe dari parameter adalah sama.Overloading pada main() Java
Seperti halnya static method lainnya, main() dapat dilakukan overloading pada Java. Berikut adalah contoh programnya.// Sebuah program Java dengan
// overloading main().
import java.io.*;
public class Test
{
/* Normal main() */
public static void main(String[] args)
{System.out.println("Hi "
+"Peek (from main)");
Test.main("Peek");}
/* Overloading main method */
public static void main(String arg1)
{System.out.println("Hi, "
+ arg1);
Test.main("Dear Kon",
"My Flen");}
public static void main(String arg1, String arg2)
{System.out.println("Hi, "
+arg1
+", "
+arg2);}
}
Hi, Peek
Hi, Dear Kon, My Flen
Java mendukung operator overloading
Tidak seperti C++, Java tidak mengijinkan user-defined overloading operator. Secara internal Java melakukan overloading operator.Perbedaan antara overloading dan overriding pada Java:
- Overloading adalah tentang fungsi yang sama tetapi memiliki signature yang berbeda. Overriding adalah tentang fungsi yang sama, signature yang sama, tetapi class yang terhubung melalui inheritance berbeda seperti diperlihatkan pada gambar 1.
- Overloading adalah contoh dari compiler time polymorphism dan overriding adalah contoh dari runtime polymorphism.
- Mempermudah Penggunaan: Method overloading mempermudah penggunaan dan pemanggilan metode dengan nama yang sama, karena pengembang dapat memanggilnya dengan argumen yang berbeda tanpa harus mengingat nama metode yang berbeda.
- Meningkatkan Keterbacaan Kode: Dengan menggunakan method overloading, pengembang dapat menyimpan nama metode yang sama untuk operasi yang berbeda. Hal ini membuat kode lebih mudah dipahami dan konsisten.
- Fleksibilitas: Method overloading memberikan fleksibilitas dalam penggunaan metode dengan argumen yang berbeda. Ini memungkinkan untuk menangani berbagai kasus penggunaan dengan nama metode yang sama.
- Menghindari Duplikasi Kode: Dengan menggunakan method overloading, pengembang dapat menghindari duplikasi kode dengan menggabungkan fungsi-fungsi yang serupa menjadi satu metode dengan nama yang sama.
- Peningkatan Produktivitas: Method overloading dapat meningkatkan produktivitas dalam pengembangan perangkat lunak dengan menyederhanakan dan mengelompokkan kode, serta mengurangi kebutuhan untuk menulis dan memelihara banyak metode dengan nama yang berbeda.
- Overloading dan Overriding Static Java dan Fungsinya
- Shadowing Fungsi Static Java dan Fungsinya
- Static Method dan Instance Method Java dan Fungsinya
- Cara Menentukan Nilai Variabel Static Final Java dan Fungsinya
- Return Covariant Java dan Fungsinya
- Object Class Java dan Fungsinya
- Perbedaan Static Class dan Non Static Class Java
22 komentar untuk "Cara Menggunakan Method Overloading Java dan Fungsinya"
Hubungi admin melalui Wa : +62-896-2414-6106
Respon komentar 7 x 24 jam, mohon bersabar jika komentar tidak langsung dipublikasi atau mendapatkan balasan secara langsung.
Bantu admin meningkatkan kualitas blog dengan melaporkan berbagai permasalahan seperti typo, link bermasalah, dan lain sebagainya melalui kolom komentar.
- Ikatlah Ilmu dengan Memostingkannya -
- Big things start from small things -
Apa yang dimaksud dengan method overloading pada bahasa pemrograman Java?
BalasHapusMethod overloading adalah fitur yang memungkinkan class memiliki lebih dari satu method yang memiliki nama yang sama jika daftar argumennya berbeda pada bahasa pemrograman Java. Hal ini mirip dengan constructur Java overloading, yang juga memungkinkan class memiliki lebih dari satu constructor yang memiliki daftar argumen yang berbeda.
HapusApa perbedaan antara overloading dan overring pada bahasa pemrograman Java?
BalasHapusMethod overloading adalah kondisi dimana dua atau lebih method dalam satu class memiliki nama method yang sama tetapi dengan parameter yang berbeda. Sendangkan method overriding terjadi ketika dua method memiliki nama dan paramter method adalah sama dimana salah satu method ada di class induk, dan method lainnya dalah di class anak.
HapusApa keuntungan menggunakan method overloading pada bahasa pemrograman Java?
BalasHapusMethod overloading dapat digunakan untuk meningkatkan kemampuan program pada Java. Dimana method overloading akan memberikan fleksibilitas bagi programmer untuk memanggil method serupa untuk berbagai jenis data. Overloading jgua dapat digunakan pada constructor untuk membuat object baru dengan jumlah data yang berbeda.
HapusJava sering direkomendasikan sebagai bahasa pemrograman pertama yang perlu dipelajari oleh pengembang baru sebelum mempelajari bahasa pemrograman lain. Bahasa pemrograman Java memiliki kelebihan dibandingkan dengan bahasa pemrograman yang lain yaitu dapat berjalan pada platform atau perangkat apapun. Selain itu, Java juga memiliki akses ke banya library dan juga mendapatkan banyak dukungan dari berbagai komunitas pengembang yang akan membantu mempermudah untuk menyelesaikan permasalahan ketika mempelajari bahasa pemrograman ini, salah satunya adalah seperti mempelajari tentang materi overloading pada Java
BalasHapus1234567*
BalasHapus123456*8
12345*78
1234*678
123*5678
12*45678
1*345678
*2345678
Ada yang bisa bantu menyelesaikan pola nya dalam bentuk program Java?
Coba gunakan kode program ini:
HapusFor(i=1;i<=8;i++)
{
For(j=1;j<=8;j++)
{
If(j==9-i)
Printf("*");
Else
Printf("%d",I);
}
}
Ini juga bisa:
Hapuspublic class Pattern1 {
public static void main(String args[]) {
int i, j;
for (i = 8; i >=1; i--) {
for (j = 1; j <= 8; j++) {
if(i == j)
System.out.print("*");
else
System.out.print(j);
}
System.out.println();
}
}
}
Ini gan, monggo dicoba,
Hapusfor(int i = 8; i > 0; i--) {
for(int j = 1; j <= 8; j++){
if(j != i)
System.out.print(String.valueOf(j));
else
System.out.print("*");
}
System.out.println("");
}
Saya menemukan kesalahan pada bagian ini...
BalasHapuspada section string java... disini tidak dapat dibuka *SPLIT() METHOD*, apa mungkin ada yang salah?
Tambahkan tanda dot(.), mungkin dapat bekerja.
HapusApakah materi tentang java overloading yang saya pelajari sekarang adalah materi Java tingkat lanjut, atau Java Inti?
BalasHapusSaya rasa materi yang disampaikan pada blog ini sudah hampir mencakup semua hal dasar tentang Java. Mungkin yang dimaksud dengan definisi Java tingkat lanjut tersebut adalah Framework yang dikembangkan dengan bahasa pemrograman Java. Jika, benar maka pada blog ini memang belum dipelajari.
HapusSaat ini saya sedang berkuliah disalah satu universitas swasta pada Jurusan Teknik Informatika, dan sedang masuk semester 2, saya sedang mengalami permasalahan tentang penjelasan antara perbedaan Java dan OOP? bisa bantu jelaskan?
BalasHapusSaya rasa anda memiliki kesalahpahaman tentang definisi fundamental Java. OOP pada dasarnya adalah sebuah konsep atau paradigma pemrograman yang diikuti oleh beberapa tingkatan bahasa pemrograman tertentu, termasuk juga Java.
HapusOOP bukan bahasa pemrograman. OOP adalah gaya pemrograman yang menggunakan object, bukan bahasa pemrograman yang biasanya normal dipelajari (a.k.a dasar kode program). OOP itu lebih ke pola pikir dalam membuat program, sedangkan Java adalah salah satu fasilitas yang digunakan untuk membuat program tersebut.
Hapusclass baap
BalasHapus{
public int h=4;
public int geth()
{
System.out.println("Baap"+h);
return h;
}
}
public class beta extends baap{
public int h=44;
public int geth(){
System.out.println("Beta" +h);
}
public statis void main(String[]args)
{
baap b = new beta();
System.out.println(b.h+" "+b.geth());
beta bb = (Beta) b;
System.out.println(bb.h+" "bb.geth());
}
}
Ada yang bisa bantu, hasil keluaran atau outputnya seperti apa?
Kemungkinan akan terjadi error, karena method utama ditulis dapat bentuk static dan kesalahan sintak lainnya juga perlu diperbaiki. Jika telah diperbaiki, kemungkinan hasilnya adalah:
Hapus4 44
44 44
Saya masih mengalami kesulitan dalam memahami materi tentang overloading pada artikel ini, adalah baru mulai belajar coding. Ada yang bisa bantu saya, supaya bisa lebih memahami materi ini...
BalasHapusUntuk lebih mudah dapat dimulai dari mempelajari topik pada bagian daftar isi dimulai dari bagian paling atas terlebih dahulu kemudian berlanjut kebagian bawah pada link berikut:
Hapushttps://www.elfanmauludi.id/p/java.html
Jika masih menemukan masalah, coba kemukakan masalahnya secara lebih spesifik, dan bisa diajukan pada kolom komentar,
happy coding :D