Java Yöntemi Aşırı Yüklemesi (Örneklerle)

Bu makalede, yöntem aşırı yüklemesini ve bunu Java'da örnekler yardımıyla nasıl başarabileceğinizi öğreneceksiniz.

Java'da, iki veya daha fazla yöntem, parametreler (farklı sayıda parametre, farklı parametre türleri veya her ikisi) bakımından farklılık gösteriyorsa aynı ada sahip olabilir. Bu yöntemler aşırı yüklenmiş yöntemler olarak adlandırılır ve bu özelliğe yöntem aşırı yükleme adı verilir. Örneğin:

 void func () (…) void func (int a) (…) float func (double a) (…) float func (int a, float b) (…)

Burada func()yöntem aşırı yüklenmiştir. Bu yöntemler aynı ada sahiptir ancak farklı argümanları kabul eder.

Not : Yukarıdaki yöntemlerin dönüş türleri aynı değildir. Bunun nedeni, yöntem aşırı yüklemesinin dönüş türleriyle ilişkili olmamasıdır. Aşırı yüklenmiş yöntemler aynı veya farklı dönüş türlerine sahip olabilir, ancak parametreler açısından farklı olmalıdır.

Neden aşırı yöntem yüklemesi?

Varsayalım, verilen sayıların toplamasını yapmanız gerekir, ancak herhangi bir sayıda argüman olabilir (basitlik için 2 veya 3 argüman diyelim).

Görevi yerine getirmek için, iki yöntem oluşturabilir sum2num(int, int)ve sum3num(int, int, int)sırasıyla iki ve üç parametre için. Bununla birlikte, her iki yöntemin davranışı aynı olduğu, ancak adlarına göre farklılık gösterdikleri için gelecekte sizin ve diğer programcıların kafası karışabilir.

Bu görevi gerçekleştirmenin daha iyi yolu, yöntemleri aşırı yüklemektir. Ve iletilen argümana bağlı olarak aşırı yüklenmiş yöntemlerden biri çağrılır. Bu, programın okunabilirliğini artırmaya yardımcı olur.

Java'da yöntem aşırı yüklemesi nasıl yapılır?

Yöntem aşırı yüklemesini gerçekleştirmenin farklı yolları şunlardır:

1. Bağımsız değişkenlerin sayısını değiştirerek aşırı yükleme

 class MethodOverloading ( private static void display(int a)( System.out.println("Arguments: " + a); ) private static void display(int a, int b)( System.out.println("Arguments: " + a + " and " + b); ) public static void main(String() args) ( display(1); display(1, 4); ) )

Çıktı :

 Bağımsız Değişkenler: 1 Bağımsız Değişkenler: 1 ve 4

2. Parametrelerin veri türünü değiştirerek

 class MethodOverloading ( // this method accepts int private static void display(int a)( System.out.println("Got Integer data."); ) // this method accepts String object private static void display(String a)( System.out.println("Got String object."); ) public static void main(String() args) ( display(1); display("Hello"); ) ) 

Çıktı :

Tamsayı verileri var. String nesnesi var.

Burada, her iki aşırı yüklenmiş yöntem de bir argümanı kabul eder. Ancak, biri tür argümanını intkabul ederken, diğeri Stringnesneyi kabul eder .

Gerçek dünya örneğine bakalım:

 class HelperService ( private String formatNumber(int value) ( return String.format("%d", value); ) private String formatNumber(double value) ( return String.format("%.3f", value); ) private String formatNumber(String value) ( return String.format("%.2f", Double.parseDouble(value)); ) public static void main(String() args) ( HelperService hs = new HelperService(); System.out.println(hs.formatNumber(500)); System.out.println(hs.formatNumber(89.9934)); System.out.println(hs.formatNumber("550")); ) )

Programı çalıştırdığınızda, çıktı:

 500 89.993 550.00

Not : Java'da, oluşturuculara yöntemler gibi benzer bir şekilde aşırı yükleme yapabilirsiniz.

Önerilen Okuma: Java Constructor Overloading

Önemli noktalar

  • Farklı bağımsız değişkenleri kabul ederlerse, iki veya daha fazla yöntem aynı sınıf içinde aynı ada sahip olabilir. Bu özellik, yöntem aşırı yükleme olarak bilinir.
  • Yöntem aşırı yüklemesi şunlardan biri ile gerçekleştirilir:
    • argümanların sayısını değiştirmek.
    • veya bağımsız değişkenlerin veri türünü değiştirmek.
  • Yalnızca yöntemlerin dönüş türünü değiştirirsek, bu yöntem aşırı yüklemesi değildir. Parametre sayısında farklılıklar olmalıdır.

Ilginç makaleler...