logo

Java'da yapıcı zincirleme nedir?

Java'da, yapıcı zincirleme bir çağırma dizisidir inşaatçılar bir nesneyi başlattığınızda. Yalnızca bir örnek kullanarak bir dizi kurucuyu birbiri ardına çağırmak istediğimizde kullanılır. Bu bölümde tartışacağız Java'da yapıcı zincirlemeyi uygun örneklerle ayrıntılı olarak anlatacağım. Gelin hızlıca bir göz atalım Java'da yapıcı nedir?

Oluşturucu

İçinde Java Yapıcı yöntemle aynıdır ancak tek fark, yapıcının sınıf adıyla aynı ada sahip olmasıdır. Sınıfın bir örneğini oluşturmak için kullanılır. Sınıfın bir nesnesini oluşturduğumuzda otomatik olarak çağrılır. Dönüş türü yoktur. Bir yapıcının olamayacağını unutmayın soyut , son , senkronize , Ve statik . Bir kurucuyu geçersiz kılamayız.

Java'da iki tür yapıcı vardır:

  • Varsayılan Yapıcı (argümansız kurucu olarak da bilinir)
  • Parametreli Oluşturucu

Yapıcı Zincirleme

Yapıcı zincirinde, aynı sınıftaki başka bir kurucudan bir kurucu çağrılır, bu süreç şu şekilde bilinir: yapıcı zincirleme. Miras yoluyla gerçekleşir. Türetilmiş bir sınıfın bir örneğini oluşturduğumuzda, önce miras alınan sınıfın (temel sınıf) tüm yapıcıları çağrılır, ardından çağıran sınıfın (türetilmiş sınıf) yapıcısı çağrılır.

Yapıcı zincirlemeyi iki şekilde başarabiliriz:

Linux'ta grep komutu
    Aynı sınıf içinde:Eğer yapıcılar aynı sınıfa aitse şunu kullanırız: Bu Temel sınıftan:Yapıcı farklı sınıflara (ebeveyn ve çocuk sınıfları) aitse, Süper Yapıcıyı temel sınıftan çağırmak için anahtar kelime.

Yapıcının sırasını değiştirmenin çıktıyı etkilemediğini unutmayın.

Java'da yapıcı zincirleme nedir

Yapıcı Zincirleme İhtiyacı

Gerçekleştirilecek beş görev olduğunu varsayalım. Bu görevleri gerçekleştirmenin iki yolu vardır; ya tüm görevleri tek bir kurucuda uygulayın ya da tek bir kurucuda ayrı görevler oluşturun.

bir dizi java döndürme

Yapıcı zincirleme mekanizmasını kullanarak tek bir kurucuda birden fazla görevi gerçekleştirebiliriz. Dolayısıyla bu tür sorunlarla karşılaştığımızda yapıcı zincirlemeyi kullanmalıyız. Yapıcı zincirlemeyi kullanarak programı daha okunaklı ve anlaşılır hale getirebiliriz.

Yapıcı Zincirleme Kuralları

  • Kullanılan bir ifade Bu anahtar kelime yapıcının ilk satırı olmalıdır.
  • Emiryapıcı zincirlemede önemli değildir.
  • Kullanmayan en az bir kurucu bulunmalıdır Bu

Yapıcı Başka bir Yapıcıdan Çağırıyor

Yapıcının çağrılması iki şekilde yapılabilir:

    this() anahtar sözcüğünü kullanarak:Aynı sınıf içerisinde geçerli sınıf yapıcısını çağırmak istediğimizde kullanılır.super() anahtar sözcüğünü kullanarak:Üst sınıf yapıcısını temel sınıftan çağırmak istediğimizde kullanılır.

Not: Aynı yapıcı bloğunda this() ve super() işlevlerini aynı anda kullanamayız.

Bu iki kavramı Java programları aracılığıyla anlayalım.

Yapıcı Zincirleme Örnekleri

Geçerli Sınıf Oluşturucusunu Çağırma

Kullanırız Bu() Geçerli sınıf yapıcısını aynı sınıf içinde çağırmak istiyorsak anahtar kelime. this() kullanımı zorunludur çünkü JVM asla olduğu gibi otomatik olarak koyma Süper() anahtar kelime. this() öğesinin yapıcının ilk satırı olması gerektiğini unutmayın. Olmayan en az bir kurucu bulunmalıdır this() anahtar kelimesi .

Sözdizimi:

 this(); or this(parameters list); 

Örneğin:

 this(); this('Javatpoint'); 

Bir Java programı oluşturalım ve mevcut sınıf yapıcısını çağıralım.

ConstructorChain.java

 public class ConstructorChain { //default constructor ConstructorChain() { this('Javatpoint'); System.out.println('Default constructor called.'); } //parameterized constructor ConstructorChain(String str) { System.out.println('Parameterized constructor called'); } //main method public static void main(String args[]) { //initializes the instance of example class ConstructorChain cc = new ConstructorChain(); } } 

Çıktı:

dizeye Java tarihi
Java'da yapıcı zincirleme nedir

Yukarıdaki örnekte herhangi bir parametre geçirmeden sınıfın bir örneğini oluşturduk. İlk önce varsayılan kurucuyu çağırır ve varsayılan kurucu bu() nedeniyle çağrıyı parametreli olana yönlendirir. Parametreli kurucunun içindeki ifadeler yürütülür ve varsayılan kurucuya geri döner. Bundan sonra, varsayılan kurucudaki ifadelerin geri kalanı yürütülür ve nesne başarıyla başlatılır. Yapıcının çağırma sırası aşağıdadır:

 ConstructorChain cc = new ConstructorChain(); -> ConstructorChain() -> ConstructorChain(String str) -> System.out.println() -> ConstructorChain() -> System.out.println() 

Süper Sınıf Oluşturucuyu çağırmak

Bazen alt sınıftan (türetilmiş sınıf) süper sınıf (ebeveyn sınıfı) yapıcısını çağırmamız gerekir, bu tür durumlarda türetilmiş sınıf yapıcısında super() anahtar kelimesini kullanırız. Super() yazmak isteğe bağlıdır çünkü JVM bunu otomatik olarak koyar. Her zaman ilk satıra yazılmalıdır. Alt sınıfta bir üst sınıf kurucuyu çağırmaya çalışırsak sözdizimi hatası alırız.

Sözdizimi:

 super(); or super(Parameter List); 

Süper(): Üst sınıfın argümansız veya varsayılan yapıcısını çağırır.

süper(parametreler): Üst sınıf parametreli yapıcıyı çağırır.

Üst sınıf yapıcısının alt sınıftan miras alınamayacağını unutmayın. Super anahtar sözcüğü kullanılarak alt sınıf yapıcısından çağrılabilir.

Bir Java programı oluşturalım ve miras alınan bir sınıfta yapıcı zincirlemeyi uygulayalım.

java while döngüsü

ConstructorChaining.java

 //parent class or base class class Demo { //base class default constructor Demo() { this(80, 90); System.out.println('Base class default constructor called'); } //base class parameterized constructor Demo(int x, int y) { System.out.println('Base class parameterized constructor called'); } } //derived class or child class class Prototype extends Demo { //derived class default constructor Prototype() { this('Java', 'Python'); System.out.println('Derived class default constructor called'); } //derived class parameterized constructor Prototype(String str1, String str2) { super(); System.out.println('Derived class parameterized constructor called'); } } public class ConstructorChaining { //main method public static void main(String args[]) { //initializes the instance of example class Prototype my_example = new Prototype(); } } 

Çıktı:

Java'da yapıcı zincirleme nedir