Java'da Özel Yapıcı: Örnekle Açıklanan Kullanım Örnekleri

Yayınlanan: 2021-04-09

İçindekiler

Tanıtım

Java'da özel bir kurucu, nesne oluşturmayı kısıtlamak için kullanılır. Yalnızca statik üye sınıflarında kullanılan özel bir örnek oluşturucudur. Bir yapıcı özel olarak bildirilirse, nesnelerine yalnızca bildirilen sınıf içinden erişilebilir. Yapıcı sınıfının dışından nesnelerine erişemezsiniz.

Özel Yapıcı Kullanım Durumları

Java'daki özel kuruculara yalnızca sınıf içinden erişilebilir. Başka bir sınıftan özel bir kurucuya erişemezsiniz. Nesne henüz başlatılmamışsa, özel eğitmeni çağırmak için genel bir işlev yazabilirsiniz. Nesne zaten başlatılmışsa, yalnızca o nesnenin örneğini döndürebilirsiniz. Java'daki özel bir kurucu aşağıdaki kullanım durumlarına sahiptir:

  • Statik üyelere özel sınıflarla kullanabilirsiniz.
  • Statik yardımcı program veya sabit sınıflarla kullanabilirsiniz .
  • Singleton sınıflarına hizmet etmek için kullanabilirsiniz.
  • Bir isim atamak için kullanabilirsiniz, örneğin fabrika yöntemlerini kullanarak yaratma.
  • Alt sınıflamayı önlemek için kullanabilirsiniz.

Tekton Sınıfı

Java'daki özel yapıcı, tek bir sınıf oluşturmak için kullanılır. Singleton sınıfı, Java'da, bildirilen sınıfın nesne sayısını bir ile sınırlayan bir sınıftır. Java'daki özel bir kurucu, aynı anda yalnızca bir nesnenin oluşturulmasını sağlar. Bildirilen sınıfın dışında hiçbir sınıf örneği oluşturulamayacak şekilde, bildirilen sınıf içindeki sınıf örneklerini kısıtlar. Singleton sınıfını ağ oluşturma ve veritabanı bağlantı kavramlarında kullanabilirsiniz.

Örnek 1: Aşağıdaki örnek , Java'daki özel bir kurucunun bir singleton sınıfındaki nesne sayısını nasıl sınırladığını gösterir.

java.io'yu içe aktar*;

sınıf yeniTestSınıfı {

statik newTestClass nesnesi = boş;

genel int a = 20;

özel newTestClass() {

}

//özel bir kurucu yarattık

statik genel newTestClass displayInstance()

/**

*displayInstance(), örnek oluşturmak için kullanacağımız genel bir yöntemdir.

*Bu örneklere sınıfın dışından erişmek için bu yöntemi çağırın.

*/

{

if (nesne == boş)

nesne = yeni newTestClass();

//singleton sınıf nesnesi oluşturuldu

dönüş nesnesi;

}

}

genel sınıf SingletonClass {

public static void main(String args[]) {

newTestClass örnek1 = newTestClass.displayInstance();

// genel yöntemi çağırarak singleton sınıfının örneğini görüntüleme

newTestClass örnek2 = newTestClass.displayInstance();

// genel yöntemi çağırarak singleton sınıfının örneğini görüntüleme

örnek1.a = örnek1.a + 26;

System.out.println(“Oluşturulan Örnek 1 şu değere sahiptir = ” + örnek1.a);

System.out.println(“Oluşturulan Örnek 2 şu değere sahiptir = ” + instance2.a);

}

}

Çıktı

Oluşturulan Örnek 1 şu değere sahiptir = 46

Oluşturulan Örnek 2, şu değere sahiptir = 46

Yukarıdaki programda, instance1 nesne değerini güncellediğimizde instance 2'nin değeri otomatik olarak güncellenir. Bu gözlem, hem örnek 1 hem de örnek 2'nin aynı nesneye atıfta bulunduğunu gösterir.

Örnek 2: Aşağıdaki örnek , Java'daki özel bir kurucunun aynı anda birden fazla nesnenin oluşturulmamasını nasıl sağladığını gösterir.

// Singleton sınıf uygulaması için Java programı

java.io.* dosyasını içe aktarın;

genel sınıf newTestClass {

özel statik newTestClass var=null;

özel newTestClass(){

//Private Constructor'a sınıf içinden erişilebilir

}

genel statik newTestClass testObject(){

// Bu yöntem, aynı anda yalnızca bir nesnenin oluşturulmasını sağlar

if(var==null){

var= new newTestClass();

}

dönüş var;

}

public void display(){

System.out.println(“Bu, Singleton sınıfı kullanan bir Özel kurucu örneğidir. ");

}

public static void main(String args[]){

newTestClass newObject= newTestClass.testObject();

newObject.display();

}

}

Çıktı

Bu, Singleton sınıfını kullanan bir Özel kurucu örneğidir.

Örnek 2: Sınıf örneklerinin sayısını sınırlamak için Java'da Özel Yapıcı .

Bu örnek, bir yapıcıyı private olarak bildirerek sınıf örneklerinin sayısını nasıl sınırlayabileceğinizi gösterir.

genel sınıf kısıtlamaInstanceCreationClass {

public static void main(String[] args) {

RestrictInstance nesnesi;

int a=1;

süre(a<=20)

{

obj = RestrictInstance.getLimInstance();

a++;

}

}

}

sınıf RestrictInstance {

public static int varCount = 0;

/**

* sayımı artıran özel kurucu oluşturun

*her örnek oluşturulduktan sonra varCount değişkeni

*/

özel RestrictInstance() {

varCount++;

System.out.println(“Örnek numarası ” + varCount + ” oluşturulur.”);

}

genel statik senkronize RestrictInstance getLimInstance() {

if(varCount <5) {

yeni RestrictInstance() döndür;

}

System.out.println(“Maksimum örnek sınırına ulaşıldı. Artık örnek oluşturmanıza izin verilmiyor.”);

sistem.gc();

boş dön;

}

/**

* Örneği silin ve sayımı azaltın

*varCount değişkeninin

*/

genel geçersiz final ()

{

System.out.println(“Örnek silindi.”);

varCount–;

}}

Çıktı

Örnek numarası 1 oluşturulur.

Örnek numarası 2 oluşturulur.

Örnek numarası 3 oluşturulur.

Örnek numarası 4 oluşturulur.

Örnek numarası 5 oluşturulur.

Maksimum örnek sınırına ulaşıldı. Artık örnek oluşturmanıza izin verilmiyor.

Maksimum örnek sınırına ulaşıldı. Artık örnek oluşturmanıza izin verilmiyor.

Maksimum örnek sınırına ulaşıldı. Artık örnek oluşturmanıza izin verilmiyor.

Maksimum örnek sınırına ulaşıldı. Artık örnek oluşturmanıza izin verilmiyor.

Örnek silinir.

Örnek silinir.

Örnek silinir.

Örnek silinir.

Maksimum örnek sınırına ulaşıldı. Artık örnek oluşturmanıza izin verilmiyor.

Örnek numarası 1 oluşturulur.

Örnek numarası 2 oluşturulur.

Örnek numarası 3 oluşturulur.

Örnek numarası 4 oluşturulur.

Örnek numarası 5 oluşturulur.

Maksimum örnek sınırına ulaşıldı. Artık örnek oluşturmanıza izin verilmiyor.

Maksimum örnek sınırına ulaşıldı. Artık örnek oluşturmanıza izin verilmiyor.

Maksimum örnek sınırına ulaşıldı. Artık örnek oluşturmanıza izin verilmiyor.

Maksimum örnek sınırına ulaşıldı. Artık örnek oluşturmanıza izin verilmiyor.

Maksimum örnek sınırına ulaşıldı. Artık örnek oluşturmanıza izin verilmiyor.

Maksimum örnek sınırına ulaşıldı. Artık örnek oluşturmanıza izin verilmiyor.

Maksimum örnek sınırına ulaşıldı. Artık örnek oluşturmanıza izin verilmiyor.

Maksimum örnek sınırına ulaşıldı. Artık örnek oluşturmanıza izin verilmiyor.

Maksimum örnek sınırına ulaşıldı. Artık örnek oluşturmanıza izin verilmiyor.

Maksimum örnek sınırına ulaşıldı. Artık örnek oluşturmanıza izin verilmiyor.

Örnek silinir.

Örnek silinir.

Örnek silinir.

Örnek numarası 1 oluşturulur.

Örnek numarası 2 oluşturulur.

Örnek numarası 3 oluşturulur.

Örnek numarası 4 oluşturulur.

Örnek numarası 5 oluşturulur.

Dünyanın En İyi Üniversitelerinden Online Yazılım Kursları Öğrenin . Kariyerinizi hızlandırmak için Yönetici PG Programları, Gelişmiş Sertifika Programları veya Yüksek Lisans Programları kazanın.

Çözüm

Makalede kullanılan kod sadece açıklama amaçlıdır. Örneklerde verilen ifadeleri ihtiyaçlarınıza göre değiştirebilirsiniz. Bu blogda, Java'da özel bir kurucunun bir singleton sınıfındaki nesne sayısını nasıl sınırladığını tartıştık.

Java kurucunuzun bilgisini güçlendirmek için kodu deneyebilirsiniz . Java hakkında derinlemesine bir anlayış kazanmak istiyorsanız, çalışan profesyonellerin bu alanda uzmanlık kazanmaları için tasarlanmış Tam Yığın Geliştirme kursundaki upGrad Yönetici PG Programına göz atın.

Programlamada yapıcılar nelerdir?

Programlamadaki yapıcılar, bir nesne başlatıldığında otomatik olarak çağrılan yöntemlerdir. Yapıcının amacı nesneyi başlatmaktır. Yapıcılar her zaman genel olmalıdır ve herhangi bir dönüş türü olmadan bildirilirler. Yapıcılar, nesneyi başlatmak ve yalnızca bir kez yapılabilecek diğer görevleri gerçekleştirmek için kullanılır. Yapıcılar ayrıca bir sınıfın başlatılmasını gerçekleştirmek, yani sınıfı oluşturan görevleri gerçekleştirmek için kullanılır.

Java'daki yapıcı türleri nelerdir?

Java'da beş tür kurucu vardır. Bunlar: Argümansız kurucular: Sınıf belleğe yüklendiğinde yürütülen varsayılan bir uygulamaya sahiptir. Argümansız kurucuya sahip olmayan bir sınıf, final olarak bildirilmelidir ZORUNLU. Varsayılan yapıcılar: Bu yapıcı, sınıf Java'da yazıldığında oluşturulur ve tüm sınıfın değişkenlerini (niteliklerini) varsayılan değerlerine (sıfır veya boş) başlatmak için kullanılır. Parametreli yapıcılar: Bu yapıcı, bazı değerlerden bazı değişkenleri başlatmak için kullanılır. Dönüş değeri olmayan yapıcılar: Bazı değerlerden bazı değişkenleri başlatmak için kullanılır. Dönüş değeri olan yapıcılar: Bazı değerlerden bazı değişkenleri başlatmak için kullanılır ve ayrıca bir değerle döner.

Java'da özel kurucu nedir?

Değişmez bir sınıf oluşturmak için özel kurucular kullanılabilir. Özel kurucular kullanmadan, sınıfı final olarak ilan ederek ve tüm nitelikleri final olarak oluşturarak değişmez sınıflar oluşturabiliriz (örn. private final String name;). Özel bir kurucu, sınıfın istemci nesneleri tarafından doğrudan çağrılamaz. Yalnızca sınıfın yöntemleriyle (özel bile olsa) dahili olarak çağrılabilirler. Bir veya daha fazla parametreye sahip özel bir kurucunuz olabilir. Yapıcının dönüş türünün ilkel boole olmasını sağlayamazsınız. Dize veya Sınıf olabilir.