Şu andan itibaren somutlaştırmayı biliyorsunuzJava'da iç sınıflarda, Polimorfizm ve Yöntem Aşırı Yüklemesinden bahsedebiliriz. Polimorfizm, bir Java nesnesinin aynı adda ancak farklı uygulamalarla yöntem çağrılarına özel davranış elde etmek için eşit şekilde yanıt verme yeteneğidir. Java'da, Polimorfizm kavramı birkaç yolla elde edilebilir. İşte Yöntem Aşırı Yükleme Kodu ile Java Eğiticimiz.
Yöntem Aşırı Yüklemesi için Kod ile Java Eğitimi.
Yöntem Aşırı Yüklemesi Nedir
Java'da iki veya daha fazla tanımlamak mümkündüraynı sınıfta aynı adı paylaşan yöntemler. Ancak, parametre bildirimleri farklı olmalıdır. Bu tür yöntemlerin aşırı yüklendiği söylenir ve işlem, yöntem aşırı yüklenmesi olarak adlandırılır.
Yöntem aşırı yüklenmesi polimorfizmi destekler çünkü Java'nın “bir arabirim, birden çok yöntem” paradigmasını gerçekleştirmesinin bir yolu budur.
Özellikleri
- Bir sınıfta, yöntem aşırı yüklenmesi kavramı, harici kullanıcının sistemin dahili işleyişinden haberdar olmasına izin vermez.
- Aşırı yüklenmiş yöntemler parametre sayısına veya parametre türüne veya parametre sırasına göre farklılık gösterir.
- Aşırı yüklenmiş yöntemler aşağıdaki sekanslarda çözülür:
- Parametre Sayısı.
- Parametrelerin Türü.
- Parametreler dizisi.
Bu yöntemlere dayanarak istenen çıktıyı döndürmek için buna göre çağrılır.
- Yöntem Aşırı yükleme, kullanıcının zaman polimorfizmini derler.
- Aşırı yüklenmiş yöntemler aynı veya farklı dönüş tiplerine sahip olabilir.
Yöntem Aşırı Yüklemesi için Java Programı
class Figure{ /* Calculate Area of Square */ void area(double length){ System.out.println("Area of Square is: "+Math.pow(length,2)); } /* Calculate Area of Rectangle */ void area(double length,double breadth){ System.out.println("Area of Rectangle is: "+(length*breadth)); } /* Calculate Area of Cylinder */ void area(double radius,int height){ System.out.println("Area of Cylinder is: "+(2*3.14*Math.pow(radius,2)*height)); } /* Calculate Area of Cube */ void area(int arms){ System.out.println("Area of Cube is: "+(6*arms*arms)); } } class CalculateArea{ public static void main(String args[]){ Figure fig = new Figure(); fig.area(5.25); fig.area(4.5,5.5); fig.area(2); fig.area(3.2,6); } }
Yöntem Aşırı Yüklemenin çıktısı.
Java Kodu ve Çıktısının Açıklaması
Burada sınıf içinde Şekil alanı () aşırı yüklenmişyöntem, farklı uygulamalar ile aynı ada sahip, yani “bir arayüz, çoklu yöntemler” paradigması. Farklı yöntemlerin, yani farklı geometrik alanların alanlarının, geçirilen parametrelerin sayısına / tipine / sırasına göre hesaplanması ve istenen çıktıların üretilmesi için aynı yöntemin kullanıldığını kolayca belirleyebilirsiniz.
Yöntem çağırma herhangi bir sırada olabilir. Silindir alanını hesaplamak için yöntem alanını () çağırmadan önce çağrılan küp alanını hesaplamak için yöntem alanı () olarak.
Programda, herhangi bir sayının karesini hesaplamak için java.lang paketinin bir üyesi olan Math sınıfının bir statik yöntemi pow () olarak adlandırdık.
Flaş açık
Aşırı yüklenmiş yöntemleri çözme sırasında Java kullanıryalnızca tam eşleşme bulunmadığında otomatik tür dönüşümleri. Aşağıda görebileceğiniz gibi bu sınıf Aşırı Yük, display (int) 'yi tanımlamıyor, ancak zaten display (double)' ı tanımladı.
Bu nedenle, display () öğesi birOverloadDemo içinde tamsayı bağımsız değişkeni, eşleşen bir yöntem bulunamadı. Bununla birlikte, Java bir tamsayıyı otomatik olarak bir çifte dönüştürebilir ve bu dönüştürme çağrıyı çözmek için kullanılabilir. Bu nedenle, display (int) bulunamadıktan sonra, Java “i” değerini iki katına çıkarır ve sonra display (double) öğesini çağırır. Elbette, “display (int)” tanımlanmış olsaydı, bunun yerine çağrılırdı.
class Overload { // display method with no parameters void display() { System.out.println("No parameters"); } // Overload display for two integer parameters. void display(int a, int b) { System.out.println("a and b: " + a + " " + b); } // overload display for a double parameter void display(double a) { System.out.println("a: " + a); } } class OverloadDemo { public static void main(String args[]) { Overload overload = new Overload(); int i = 88; ob.display(); ob.display (10, 20); ob.display (i); // this will invoke display(double) ob.display (123.2); // this will invoke display(double) } }
N.B: Bu dönüşüm, daha düşük veri tipi (örn. İnt) ile daha yüksek veri tipi (örneğin çift) dönüşümü için tersi değil (çift-int) için geçerlidir.
Bir sonraki eğitimimizde, Java'da yapıcı aşırı yüklemesi hakkında bilgi edineceğiz.
Yorumlar