Aşırı yüklenmiş yöntemler, aynı sınıfta aynı adı paylaşan ancak farklı değişken türlerini argüman olarak kabul eden yöntemlerdir. Örneğin, bir sınıf iki farklı "add" yöntemi içerebilir: biri iki double değeri kabul eden, "add (double a, double b)" ve iki tane kabul eden tamsayı değerleri, "ekleyin (int a, int b)." Bilgisayar, iletilen değişken türlerine bağlı olarak çalışma zamanında hangi yöntemin çağrılacağına otomatik olarak karar verir. yöntem.
Esneklik
Aşırı yüklenmiş yöntemler, programcılara farklı veri türleri için benzer bir yöntemi çağırma esnekliği verir. Örneğin bir matematik programı üzerinde çalışıyorsanız, birkaç "çarpma" sınıfı oluşturmak için aşırı yüklemeyi kullanabilirsiniz, her biri farklı sayıda argüman türünü çarpar: en basit "çarpma (int a, int b)" iki ile çarpar tam sayılar; daha karmaşık olan "çarpma (double a, int b, int c)" yöntemi bir double ile iki tamsayıyı çarpar -- o zaman için aşırı yüklenmiş bir yöntem oluşturduğunuz herhangi bir değişken kombinasyonunda "çarpma" çağrısı yapın ve uygun sonucu alın.
Günün Videosu
yapıcılar
Farklı miktarlarda veri verilen yeni nesneler oluşturmak için yapıcılar üzerinde aşırı yükleme de kullanılır. Örneğin, bir ev numarası, sokak adı ve renk değişkenleriyle bir "Ev" nesnesi için üç farklı kurucu oluşturmak için aşırı yüklemeyi kullanabilirsiniz. En basit yapıcı "House()" hiçbir argüman almaz ve varsayılan veya boş değişkenlerle bir ev oluşturur. Daha karmaşık bir yapıcı olan "House (int houseNumber, String streetName)," belirtilen bina numarası ve sokak adıyla, ancak varsayılan veya boş bir renkle bir ev oluşturur. En karmaşık yapıcı olan "House (int houseNumber, String streetName, String color)," belirtilen tüm bilgilerle bir ev oluşturur ve hiçbir şeyi varsayılan olarak bırakmaz. Daha sonra, mevcut olmayan bilgiler boş bırakılarak veya varsayılan olarak mevcut bilgilere dayalı olarak bir ev nesnesi oluşturabilirsiniz.
Belirsiz Referanslar
Belirsizliği önlemek için aşırı yüklenmiş yöntemler farklı sayılar veya türde argümanlar kullanmalıdır. Aynı sınıfta aynı ada sahip iki yöntem oluşturur ve argüman olarak iki tamsayı kabul ederseniz, Java derleyicisi, girdi değişkenleri farklı adlara sahip olsa bile ikisi arasında ayrım yapamaz. Örneğin, "add (int a, int b)" yöntemi, "add (int c, int d)" yöntemiyle aynı sınıfta olamaz.
İade Türleri
Her aşırı yüklenmiş yöntem için bir dönüş türü tanımlamanız gerekir. Yöntemlerin farklı dönüş türleri olabilir - örneğin, "add (int a, int b)" bir tamsayı döndürürken "add (double a, double b)" bir double döndürür. Ancak Java, dönüş türlerine göre iki farklı yöntemi ayırt edemez. Bu nedenle, "int çarpma (double a, double b)", "double çarpma (double a, double b)" ile aynı sınıfta olamaz.