Java’da overloading, metodumuzu aşırı yükleme yöntemidir. Java’da‘ overloading kavramı metotlarda sıkça kullanacağımız bir yöntemdir. Overloading işlemi nedir diye açıklayacak olursak: Bir metot oluşturduğumuzu düşünelim, oluşturmuş olduğumuz bu metot bazı görevler üstlenir. Üstlendiği bu görevlere, göre de metotlarımıza isimler veririz. Farklı görevleri gerçekleştiren, aynı isme sahip metotları oluşturmak istediğimizde ise overloading kavramını kullanırız. Overloading kavramımızda, aynı isimli metotlar olabilmektedir. Ancak oluşturulan overloading edilen bu metotlarımızın parametre tipleri ve sıraları farklı olması gerekmektedir. Zaten bunu overloading kuralları başlığı altında anlatacağım.
Java’da Overloading Kullanımının Avantajları
- Aynı isimlere sahip ama farklı parametrelerle birçok metot oluşturma yöntemidir.
- Temiz ve sade bir kod düzeni oluşturur.
- Kodun okunabilirliğini arttırır.
- Overloading, programcılara farklı veri türleri için benzer bir metodu çağırma esnekliğini sağlamaktadır.
Java Overloading Kuralları
- Metot overloading edilirken metot imzasını değiştirmek. Metot imzası argüman numaralarından, eğer farklı tiplerde ise bu argümanlar onların tiplerinden ve diziliminden oluşmaktadır.
- Metot ismi overloaded işlemi gerçekleştirilmek istenen metot ismiyle aynı olmalıdır.
- Metodun döndürdüğü değer metot imzasının bir parçası değildir, bu nedenle Java’da sadece return değerini değiştirmek metodu overload yapmayacaktır.
Java’da overloading kavramımızı pekiştirmek için örneklerimize geçelim.
1. Örnek
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | public class Overloading { //cikti adında 3 tane metot oluşturduk ve içerisine parametreleri yazdık. public static void cikti(int a){ System.out.println("Çıktı = " + a); } public static void cikti(int a, int b){ System.out.println("Çıktı = " + a + " & " + b); } public static void cikti(int a, int b, int c){ System.out.println("Çıktı = " + a + " & " + b + " & " + c); } //Main metodumuzu oluşturduk. public static void main(String[] args) { //parametrelerimize değerler atıyarak metodumuzu çalıştırdık. cikti(3); cikti(3, 6); cikti(3, 6, 9); } } |
Ekran Çıktısı
1 2 3 | Çıktı = 3 Çıktı = 3 & 6 Çıktı = 3 & 6 & 9 |
Yaptığımız bu örnekte cikti adında 3 metot oluşturduk. Oluşturmuş olduğumuz bu metotların içerisine parametreleri tanımladık. main metodumuzda ise oluşturmuş olduğumuz cikti metotlarımızın içerisine değerleri atadık ve ekran çıktımızı verdik.
2. Örnek
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | public class Overloading { //toplama adında 2 tane metot oluşturduk ve içerisine parametreleri yazdık. //parametrelerimizin toplamının verilmesi için işlemimizi gerçekleştirdik. public static void toplama(int a, int b){ System.out.println("Toplamları = "+ (a+b)); } public static void toplama(int a, int b, int c){ System.out.println("Toplamları = "+ (a+b+c)); } //Main metodumuzu oluşturduk. public static void main(String[] args) { //parametrelerimize değerler atadık ve metodumuzu çalıştırdık. toplama(6, 9); toplama(7, 4, 10); } } |
Ekran Çıktısı
1 2 | Toplamları = 15 Toplamları = 21 |
Bu örneğimizde ise toplama adında 2 metot oluşturduk. Metotlarımızın içerisine parametrelerimizi yazdık ve gerçekleştirilmesi gereken işlemimizi belirledik. main metodumuzdaysa, oluşturduğumuz toplama metotlarımızın içerisine değerlerimizi atadık ve ekran çıktımızı verdik.
3. Örnek
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | public class Overloading { //carpma adında 3 tane metot oluşturduk ve içerisine parametreleri yazdık. //parametrelerimizin çarpımının verilmesi için işlemimizi gerçekleştirdik. //carpma metodumuzda overloading işlemimizi gerçekleştirdik. //içerisine 2 parametre yazdık. public int carpma(int a, int b){ return (a*b); } //carpma metodumuzda overloading işlemimizi gerçekleştirdik. //içerisine 3 parametre yazdık. public int carpma(int a, int b, int c){ return(a*b*c); } //carpma metodumuzda overloading işlemimizi gerçekleştirdik. //içerisine 3 parametre yazdık. public int carpma (int a,int b, int c, int d) { return(a*b*c*d); } //Main metodumuzu oluşturduk. public static void main(String[] args) { //carp adında bir nesne oluşturduk. Overloading carp = new Overloading(); //parametrelerimize değerler atadık ve işlemimizi gerçekleştirdik. System.out.println("Sonuç = " + carp.carpma(3, 6)); System.out.println("Sonuç = " + carp.carpma(5, 2, 3)); System.out.println("Sonuç = " + carp.carpma(2, 3, 4, 2)); } } |
Ekran Çıktısı
1 2 3 | Sonuç = 18 Sonuç = 30 Sonuç = 48 |
Yapmış olduğumuz bu örnekte overloading yöntemimizi kullanarak çarpma işlemi gerçekleştirdik. İlk olarak 3 tane carpma adında metot oluşturduk ve bu metodumuzun içerisine parametrelerimizi yazdık. Sonrasında ise main metodumuzda carp adında bir nesne oluşturduk. Bu nesnemizi kullanarak metotlarımızın içerisindeki parametrelere değerlerimizi atadık ve ekran çıktımızı verdik.
4. Örnek
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | public class Overloading2 { public static void main(String[] args) { System.out.println("Selamlar {main sınıfımızdan} "); Overloading2.main("Hoşgeldiniz"); } // Main metodumuz overloading edilmiştir. public static void main(String a) { System.out.println("Selamlar " + a); Overloading2.main("Konumuz", "Overloading"); } public static void main(String a, String a2) { System.out.println("Selamlar " + a + " " + a2); } } |
Ekran Çıktısı
1 2 3 | Selamlar {main sınıfından} Selamlar Hoşgeldiniz Selamlar Konumuz Overloading |
Yapmış olduğumuz bu örnekte main metodumuza overloading işlemi yaptık. İlk olarak normal main metodumuzu oluşturduk, sonrasında ise diğer main metodlarımızın içerisine parametrelerimizi girdik ve ekran çıktılarını verdik.