Yapıcının Aşırı Yüklenmesi Java

⚡ Akıllı Özet

Yapıcının Aşırı Yüklenmesi Java Bu özellik, bir sınıfın parametre listesi bakımından farklılık gösteren birden fazla kurucu metot bildirmesine olanak tanıyarak geliştiricilere esnek nesne başlatma, this() aracılığıyla daha temiz kod tekrar kullanımı ve örnek oluşturma sırasında varsayılan veya özel değerler gerektiğinde öngörülebilir davranış sağlar.

  • 🏗️ Tanım: Yapıcının Aşırı Yüklenmesi Java Aynı sınıfta, parametre sayısı, türü veya sırası bakımından birbirinden ayrılan birden fazla kurucu metoda izin verir.
  • 🧩 Esneklik: Aşırı yüklenmiş kurucu metotlar, nesneleri farklı argüman kümeleriyle başlatır.
  • 🔀 Zincirleme: `this()` ve `super()` anahtar kelimeleri, güvenli kurucu zincirleme kullanımını sağlar.
  • Varsayılanlar: Parametreli bir kurucu metot mevcutsa, varsayılan form mutlaka belirtilmelidir.
  • 🧪 Örnekler: Code Örnekler geçerli imzalar ve zincirleme davranışı sergilemektedir.

Yapıcının Aşırı Yüklenmesi Java

Yapıcı metot aşırı yüklemesi nedir? Java?

Yapıcının Aşırı Yüklenmesi Java Bu, bir sınıfın parametre listesi bakımından farklılık gösteren birden fazla kurucu metot tanımladığı bir tekniktir. Derleyici, parametre sayısını ve veri türlerini analiz ederek bu kurucu metotları birbirinden ayırır.

Sınıf için geçerli kurucu metot örnekleri Hesap aşağıda gösterilmiştir:

Account(int a);
Account (int a,int b);
Account (String a,int b);

Yapıcı metotların aşırı yüklenmesine neden ihtiyacımız var? Java?

Yapıcının Aşırı Yüklenmesi Java Bir sınıfta, her biri farklı parametre listesine sahip birden fazla kurucu metoda izin vererek esnekliği ve kod verimliliğini artırır.

  • Nesne Oluşturmada Esneklik: Yapıcı metot aşırı yüklemesi, parametrelerin sayısına veya türüne bağlı olarak nesneleri çeşitli şekillerde başlatmanıza olanak tanır.
  • Code Tekrar Kullanılabilirlik: Bir kurucu fonksiyonu başka bir kurucu fonksiyondan çağırarak kurucu fonksiyon mantığını yeniden kullanabilirsiniz. Bu() Anahtar kelime.
  • Geliştirilmiş Okunabilirlik: Aşırı yüklenmiş kurucular, farklı başlatma ihtiyaçları için özel seçenekler sunarak kodu daha sezgisel hale getirir.
  • Varsayılan ve Özel Başlatma: Yapıcı metot aşırı yüklemesi, hem varsayılan hem de özel olarak başlatılan nesneleri kolayca oluşturmanıza olanak tanır.

Örnek: Yapıcı Metot Aşırı Yüklemesi Java

Aşağıdaki örnek, kurucu metotların aşırı yüklenmesini (constructor overloading) göstermektedir. Java adlı bir sınıf kullanarak Gösteri.

) 1 Adım Kodu düzenleyiciye yazın.

class Demo{
      int  value1;
      int  value2;
      /*Demo(){
       value1 = 10;
       value2 = 20;
       System.out.println("Inside 1st Constructor");
     }*/
     Demo(int a){
      value1 = a;
      System.out.println("Inside 2nd Constructor");
    }
    Demo(int a,int b){
    value1 = a;
    value2 = b;
    System.out.println("Inside 3rd Constructor");
   }
   public void display(){
      System.out.println("Value1 === "+value1);
      System.out.println("Value2 === "+value2);
  }
  public static void main(String args[]){
    Demo d1 = new Demo();
    Demo d2 = new Demo(30);
    Demo d3 = new Demo(30,40);
    d1.display();
    d2.display();
    d3.display();
 }
}

) 2 Adım Kodu kaydedin, derleyin ve çalıştırın.

) 3 Adım Bir hata oluştu. Yapıcı Aşırı Yükleme (Constructor Overloading) bölümünün bir sonraki adımına geçmeden önce hatayı ayıklamayı deneyin. Java.

) 4 Adım Her sınıfın bir varsayılanı vardır Oluşturucu JavaVarsayılan yapıcı fonksiyon sınıf Demosu is Demo()Eğer bunu belirtmezseniz, derleyici sizin için oluşturur ve değişkenleri varsayılan değerlere başlatır.

Ancak, aşağıdaki gibi parametreli bir kurucu belirtirseniz Demo(int a) ve varsayılanı kullanmak istiyorum Demo()Bunu açıkça belirtmek zorunludur.

) 5 Adım Kodun 4-8. satırlarındaki yorum satırlarını kaldırın, ardından kaydedin, derleyin ve programın davranışındaki değişikliği gözlemlemek için tekrar çalıştırın.

Yapıcı Zincirleme Java

Temel sınıfın bir çocuk tarafından genişletildiği bir senaryoyu düşünün. Alt sınıfın bir nesnesi oluşturulduğunda, ilk olarak ana sınıfın yapıcısı çağrılır. Buna denir Yapıcı zincirleme.

Örnek: Yapıcı zincirlemeyi ve Yapıcı Aşırı Yüklemeyi anlamak için Java

) 1 Adım Aşağıdaki kodu editöre kopyalayın.

class Demo{
   int  value1;
   int  value2;
    Demo(){
      value1 = 1;
      value2 = 2;
      System.out.println("Inside 1st Parent Constructor");
   }
   Demo(int a){
      value1 = a;
      System.out.println("Inside 2nd Parent Constructor");
   }
  public void display(){
     System.out.println("Value1 === "+value1);
     System.out.println("Value2 === "+value2);
  }
  public static void main(String args[]){
     DemoChild d1 = new DemoChild();
     d1.display();
  }
}
class DemoChild extends Demo{
    int value3;
    int value4;
    DemoChild(){
    //super(5);
     value3 = 3;
     value4 = 4;
    System.out.println("Inside the Constructor of Child");
    }
    public void display(){
      System.out.println("Value1 === "+value1);
      System.out.println("Value2 === "+value2);
      System.out.println("Value1 === "+value3);
      System.out.println("Value2 === "+value4);
   }
}

) 2 Adım Kodu çalıştırın. Yapıcı zincirleme nedeniyle, alt sınıfın nesnesi oluşturulduğunda... DemoChild yapıcı oluşturulur Demo() Üst sınıfın kurucusu önce çağrılır ve ardından kurucu fonksiyon devreye girer. DemoChild() Çocuk sıradaki koşuyor.

Beklenen çıktı:

Inside 1st Parent Constructor
Inside the Constructor of Child
Value1 === 1
Value2 === 2
Value1 === 3
Value2 === 4

) 3 Adım Üst sınıfın kurucusunu gözlemleyebilirsiniz. Demo() Varsayılan olarak çalışır. Aşırı yüklenmiş kurucuyu çağırmak için. Demo(int a) Bunun yerine anahtar kelimeyi kullanın. "Süper".

Sözdizimi:

super();
--or--
super(parameter list);

Örnek: Eğer üst sınıfınızın kurucu metodu şöyleyse: Demo(String Name, int a), belirteceksiniz süper("Java”,5). Kullanılırsa, anahtar kelime Süper Bu, alt sınıfın yapıcı metodunun ilk kod satırı olmalıdır.

) 4 Adım 26. satırdaki yorum satırını kaldırın ve kodu çalıştırın. Çıktıyı inceleyin.

Çıktı:

Inside 2nd Parent Constructor
Inside the Constructor of Child
Value1 === 5
Value2 === 0
Value1 === 3
Value2 === 4

SSS

Yapıcı metot, bellek tahsisinden hemen sonra çağrılan ve yeni oluşturulan bir nesneyi başlatmak için kullanılan özel bir metottur. Kullanıcı tanımlı bir yapıcı metot sağlanmazsa, derleyici üye değişkenlerini sayısal türler için 0 ve referanslar için null gibi varsayılan değerlere başlatır.

A Java Yapıcı metot, sınıfıyla aynı adı taşımalı ve void de dahil olmak üzere herhangi bir dönüş tipi bildirmemelidir. Yapıcı metot aşırı yüklemesi. Java Bu, aynı sınıf içindeki birden fazla kurucu fonksiyon bildiriminde parametrelerin sayısını, türünü veya sırasını değiştirerek elde edilir.

Yapıcı metot zincirleme, bir alt sınıfın yapıcı metodunun, üst sınıfın yapıcı metodunu, örtük olarak veya super() kullanarak açıkça çağırması durumunda ortaya çıkar. Yapıcı metot aşırı yüklemesiyle birlikte çalışır. Java Nesne oluşturma sırasında alt sınıfa özgü mantık çalışmadan önce, miras alınan alanların doğru şekilde başlatıldığından emin olmak için.

Yapıcı metot aşırı yüklemesi, nesneleri farklı şekillerde başlatan birden fazla yapıcı metot tanımlarken, metot aşırı yüklemesi ise farklı girdilerle ilgili işlemleri gerçekleştiren birden fazla metot tanımlar. Yapıcılar, `new` ile nesne oluşturma sırasında çalışırken, aşırı yüklenmiş metotlar mevcut nesneler veya sınıflar üzerinde açıkça çağrılır.

Evet, yapay zekâ kodlama asistanları, yapıcı metot aşırı yüklemesi (Constructor Overloading) üretebilir. Java Doğal dil istemlerinden veya sınıf diyagramlarından yola çıkarak, yapıcı imzaları oluşturur, this() ile mantığı devreder ve ekler. JavaBu, şablon kod oluşturmayı hızlandırırken, doğruluğu ve proje kurallarına uygunluğu açısından geliştirici incelemesini de gerektirir.

Yapay zeka araçları, mevcut sınıfları analiz edebilir ve kurucu metotların aşırı yüklenmesinin düzeltilmesi için önerilerde bulunabilir. Java gereksiz yapıcı fonksiyonları birleştirerek, oluşturucu kalıpları kullanarak veya örneğintracBaşlatma yardımcıları, belirsiz aşırı yüklemeleri vurgular, parametre yeniden adlandırmayı önerir ve kurucu tasarımını değişmezlik ve bağımlılık enjeksiyonu gibi kalıplarla uyumlu hale getirir.

Bu yazıyı şu şekilde özetleyin: