- - Öğretici: Java'da Yapıcı Aşırı Yüklemesi

Öğretici: Java'da Yapıcı Aşırı Yüklemesi

Java hakkında her şeyi tartıştıkbizim önceki öğretici inşaatçılar ve biz de farklı türde inşaatçılar viz tartıştık. Varsayılan Oluşturucu, Parametreli Oluşturucu ve Kopya Oluşturucu. Yapıcı aşırı yüklemesinin ayrıntılarına girmeden önce yapıcıyı bir kez daha tekrar özetleyeceğiz.

Rekapitülat Yapıcı

  • Yapıcılar, nesne oluşturulduktan hemen sonra sınıfın örnek değişkenlerine başlangıç ​​değerleri atamak için kullanılır.
  • Yapıcı her zaman yeni operatör tarafından çağrılır.
  • Bağımsız değişken içermeyen varsayılan bir kurucu Java Sanal Makinesi (JVM) tarafından otomatik olarak çağrılır.
  • Yapıcılar, tıpkı yöntemleri beyan ettiğimiz gibi ilan edilir, ancak kurucunun herhangi bir dönüş türü olmaması gerekir.

Java'da Yapıcı Aşırı Yüklemesi Nedir?

Yapıcılar farklı argümanlarla aynı ada sahip olduğunda (sayı / tür / argüman sıralaması farklı olabilir), Yapıcı Aşırı Yüklemesi denir.

Özellikleri:

  • Bir sınıfta, yapıcı aşırı yüklenmesi kavramı, harici kullanıcının sistemin dahili işlenmesi hakkında farkında olmasına izin vermez.
  • Aşırı yüklenmiş yapıcılar parametre sayısı veya parametre türü veya parametre dizisi bakımından farklılık gösterir.
  • JVM, yapıcıları aşağıdaki kriterlere göre farklılaştırır
    1. Parametre Sayısı.
    2. Parametrelerin Türü.
    3. Parametrelerin Sırası.
  • Yapıcı aşırı yüklenmesi, kullanıcının derleme zamanı polimorfizmini elde etmesini sağlar.

program

class Figure{
double width;
double height;
double depth;
/* Default Constructor */
Figure(){
width = -1;
height = -1;
depth = -1;
}
/* Parameterized constructor when all the dimensions are specified */
Figure(double width,double height,double depth){
this.width = width;
this.height = height;
this.depth = depth;
}
/* Parameterized constructor to calculate volume of Cube */
Figure(double length){
width = height = depth = length;
}
/*Copy Constructor */
Figure(Figure fig){
width = fig.width;
height = fig.height;
depth = fig.depth;
}
/* Method to calculate Volume */
double volume(){
return width*height*depth;
}
}
class CalculateVolume{
public static void main(String args[]){
Figure fig = new Figure();
Figure pp = new Figure(2,3,4);
Figure cube = new Figure(3);
Figure box = new Figure(pp);
System.out.println("Volume of default Figure is: "+fig.volume());
System.out.println("Volume of Parallelopiped is: "+pp.volume());
System.out.println("Volume of Cube is: "+cube.volume());
System.out.println("Volume of Box is: "+box.volume());
}
}

Çıktı

constructor_overload

Java Kodu ve Çıktısının Açıklaması

Sınıfta yapıcı Şekil ()bu geometrik şekillerin hacmini hesaplamak için örnek değişkenleri başlatmak üzere farklı argümanlar ile aşırı yüklenmiştir. Şekil Şekil'de tüm örnek değişkenleri bazı varsayılan değerlerle başlatmak için bir varsayılan kurucu tanımladık. İşte -1. Sonraki iki kurucu, birinci kurucuda tüm boyutların belirtildiği ve ikincinin küp için boyutunun belirtildiği parametreli kuruculardır. Sonuncusu, mevcut figürün herhangi biriyle aynı olabilecek herhangi bir şekle ihtiyaç duyduğumuzda kopya yapıcıdır. Daha sonra bu yapıcıyı, yaratmamız gereken şeklin boyutlarını başlatmak için kullanabiliriz. Bu nedenle, nesne oluşturma sırasında JVM, bu aşırı yüklenmiş yapıcıları yukarıda özelliklerde belirtilen çözünürlük kriterleri temelinde ayırır.

Bir daha temel tekrarlamak istiyorumparametreli kurucu olarak bildiriliyor ve bu sınıfın nesnesini o sınıfın varsayılan kurucusuyla oluşturmak istiyorsanız, JVM varsayılan kurucuyu kendisinden varsayılan kurucu vermediğinde hata alırsınız. Herhangi bir örnekleme hatasından kaçınmak için parametrelenmiş kurucu sağlarken açıkça varsayılan kurucuyu sağlamanız gerekir.

N.B: Otomatik veri türü dönüşümüyapıcı aşırı yükleme de. 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.

Sonra öğreneceğiz Java yöntemlerinden nesne döndürme.

Java programlama ile ilgili daha kullanışlı eğitimlere ve kesin yönergelere buradan göz atın.

Yorumlar