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
Yapıcının sırasını değiştirmenin çıktıyı etkilemediğini unutmayın.
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.
- 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:
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
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ı: