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.

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
