Nesne yönelimli programlamada yapıcı, bir nesne oluşturmak için çağırdığınız özel bir işlevdir. Yapıcılar, çalışmalarını sağlayan birkaç benzersiz özelliğe sahiptir.

Java'da, bir kurucuya sınıfından sonra isim verirsiniz. Yapıcı, uygulandığı sınıfta tanımlanan bir yöntemdir. Java yapıcıları, alternatif davranış sağlamak için aşırı yüklemeyi kullanabilir. Java'daki yapıcılar, kodu yeniden kullanmak için kalıtımdan da yararlanabilir.

Neden Yapıcılara İhtiyacınız Var?

Yapıcılar bir dayanak noktasıdır nesne yönelimli programlama, ve Java bir istisna değildir. Bu örnek, bir veri özelliği ve bir yöntemle temel bir Circle sınıfını nasıl tanımlayabileceğinizi gösterir:

genel sınıf Çember {
halka açık çift yarıçap;
genel çift alan() { dönüş 3.14159 * yarıçap * yarıçap; }
}

Daha sonra bu sınıfın bir örneğini oluşturabilir ve onunla etkileşim kurabilirsiniz:

Çember c = yeni Çember();
c.yarıçap = 2;
System.out.println (c.area()); // 12.56636

Ancak bu, olabileceğinden daha az kullanışlı ve sağlamdır. Verileri kapsüllemek ve yetkisiz erişime karşı korumak iyi bir nesne yönelimli uygulamadır:

instagram viewer
genel sınıf Çember {
özel çift ​​yarıçap;
genel çift alan() { dönüş 3.14159 * yarıçap * yarıçap; }
public void setRadius (çift r) { yarıçap = r; }
}

Artık arama kodu, set Yarıçapı yöntem ve uygulama ayrıntıları hakkında endişelenmenize gerek yok:

Çember c = yeni Çember();
c.setRadius (2);

Oluşturucular, bir nesneyi oluşturduğunuzda ona veri sağlamanın daha da iyi bir yolunu sunar. Gibi özelliklerin başlatılması için çok sık kullanılırlar. yarıçap İşte.

Basit Yapıcı Örnekleri

En temel kurucu, hiçbir argüman içermeyen, hiçbir şey yapmayan bir kurucudur:

genel sınıf Çember {
genel Çember() {}
}

Ayrıca bakınız: Java'da Sınıfların Nasıl Oluşturulacağını Öğrenin

Bir kurucu tanımlamazsanız, Java aynı şekilde davranan bir varsayılanı sağlayacaktır.

Birkaç şeye dikkat edin:

  1. Yapıcının adı, sınıf adıyla eşleşir.
  2. Bu yapıcı kullanır halka açık erişim değiştirici, böylece başka herhangi bir kod onu arayabilir.
  3. Bir yapıcı bir dönüş türü içermez. Diğer yöntemlerden farklı olarak, yapıcılar bir değer döndüremez.

Yapıcılar tipik olarak bir tür başlatma gerçekleştirir. Yukarıdaki kodun yarıçap değerini başlatmadığını unutmayın. Bu durumda, dil otomatik olarak sıfıra ayarlayacaktır. Bu sınıf, bir kullanıcının kullanmasını bekler setRadius(). 0'dan daha kullanışlı bir varsayılan kullanmak için, onu yapıcı içinde atayabilirsiniz:

genel sınıf Çember {
public Circle() { yarıçap = 1; }
}

Bu sınıfla oluşturulan çevreler en azından artık gerçek bir alana sahip olacak! Arayan hala kullanabilir setRadius() 1'den farklı bir yarıçap sağlamak için. Ancak yapıcı daha da dostça olabilir:

genel sınıf Çember {
halka açık Daire (çift r) { yarıçap = r; }
}

Artık doğumdan itibaren belirli bir yarıçapa sahip daireler oluşturabilirsiniz:

Daire c = yeni Daire (2);
System.out.println (c.area()); // 12.56636

Bu, yapıcılar için çok yaygın bir kullanımdır. Bunları genellikle değişkenleri parametre değerlerine başlatmak için kullanacaksınız.

Yapıcı Aşırı Yüklemesi

Bir sınıf tanımında birden fazla kurucu belirtebilirsiniz:

public Circle() { yarıçap = 1; }
halka açık Daire (çift r) { yarıçap = r; }

Bu, arama koduna nesnelerin nasıl oluşturulacağına dair bir seçenek sunar:

Daire c1 = yeni Daire (2);
Çember c2 = yeni Çember();
System.out.println (c1.area() + ", " + c2.area()); // 12.56636, 3.14159

Biraz daha karmaşık bir Çember ile daha ilginç kurucuları keşfedebilirsiniz. Bu sürüm konumunu saklar:

genel sınıf Çember {
halka açık çift x, y, yarıçap;
public Circle() { yarıçap = r; }
halka açık Daire (çift r) { yarıçap = r; }
public Circle (çift x, çift y, çift r) {
bu.x = x; bu.y = y; yarıçap = r;
}

genel çift alan() { dönüş 3.14159 * yarıçap * yarıçap; }
}

Artık bağımsız değişken, tek bir yarıçap veya yarıçapın yanında x ve y koordinatları olmayan bir Daire oluşturabilirsiniz. Bu, Java'nın herhangi bir yöntem için desteklediği aynı tür aşırı yüklemedir.

Yapıcı Zincirleme

Diğerini temel alan bir Çevre oluşturmaya ne dersiniz? Bu bize Çevreleri kolayca kopyalama yeteneği verirdi. Aşağıdaki bloğu gözlemleyin:

genel Çember (Daire c) {
this.x = c.x;
bu.y = c.y;
bu.yarıçap = c.yarıçap;
}

Bu işe yarayacak, ancak bazı kodları gereksiz yere tekrarlıyor. Circle sınıfı zaten bireysel özellikleri işleyen bir kurucuya sahip olduğundan, bunun yerine onu kullanarak çağırabilirsiniz. bu anahtar kelime:

genel Çember (Daire c) {
bu (c.x, c.y, c.radius);
}

Bu, bir yapıcıyı diğerinden çağıran bir yapıcı zincirleme biçimidir. Daha az kod kullanır ve bir işlemi kopyalamak yerine merkezileştirmeye yardımcı olur.

Üst Yapıcıyı Çağırma

Yapıcı zincirlemenin diğer biçimi, bir yapıcı kendi üst sınıfının bir yapıcısını çağırdığında ortaya çıkar. Bu açık veya örtük olabilir. Bir üst kurucuyu açıkça çağırmak için şunu kullanın: Süper anahtar kelime:

süper (x, y);

Circle'ın ebeveyni olarak hareket eden bir Shape sınıfı hayal edin:

public class Şekil {
çift ​​x, y;
genel Şekil (çift _x, çift _y) { x = _x; y = _y; }
}

Bu, hepsinin paylaştığı işlevsellik olduğundan, tüm şekiller için ortak konumlandırmayı yönetir. Artık Circle sınıfı, konum işlemeyi ebeveynine devredebilir:

genel sınıf Çember şekli uzatır {
çift ​​yarıçap;
public Circle (double r) { super (0, 0); yarıçap = r; }
public Circle (çift x, çift y, çift r) {
süper (x, y);
yarıçap = r;
}
}

Süper sınıf inşaat çok önemli bir yönüdür Java'da kalıtım. Açıkça aramazsanız dil varsayılan olarak bunu zorlar. Süper yapıcılarınızda.

Yapılandırıcılarda Değiştiricilere Erişim

Yapıcılar imzalarına bir erişim değiştirici içerebilir. Diğer yöntemler gibi, bu, yapıcıya hangi tür arayanların erişebileceğini tanımlar:

genel sınıf Testi {
özel statik Test uniqueInstance = new Test();
özel Test() { }
genel statik Test getInstance() {
uniqueInstance'ı döndür;
}
}

Bu daha karmaşık bir örnek, bu yüzden anlamaya dikkat edin:

  • Sınıf soyut değildir, bu nedenle ondan örneklendirmek mümkündür.
  • Yapıcı özeldir, bu nedenle yalnızca bu sınıfın kendisi yeni bir örnek oluşturabilir.
  • Statik bir özellik ve yöntem aracılığıyla sınıf, kendisinin tek ve benzersiz bir örneğini arayanlara sunar.

Nesneler Oluşturmak için Java'da Oluşturucuları Kullanın

Yapıcılar, nesne yönelimli programlama için hayati öneme sahiptir. Çok önemli olan nesneler yaratmanıza izin veriyorlar!

Java'da yapıcılar diğer yöntemlere benzer ve hemen hemen aynı şekilde çalışırlar. Varsayılan yapıcılar, aşırı yükleme ve yapıcı zincirleme ile ilgili özel kuralları hatırlamalısınız. Yapıcılar sizin için yeniyse, başlarken öğrenmeniz gereken diğer temel Java kavramlarını okumak isteyebilirsiniz.

E-posta
Başlarken Öğrenmeniz Gereken 10 Temel Java Kavramı

İster bir GUI yazıyor olun, ister sunucu tarafı yazılım geliştiriyor olun, isterse Android kullanan bir mobil uygulama geliştiriyor olun, Java öğrenmek size iyi hizmet edecektir. İşte başlamanıza yardımcı olacak bazı temel Java kavramları.

Sonrakini Oku

İlgili konular
  • Programlama
  • Java
  • Kodlama İpuçları
Yazar hakkında
Bobby Jack (51 Makale Yayınlandı)

Bobby, yirmi yıldan fazla bir süredir yazılım geliştiricisi olarak çalışan bir teknoloji tutkunu. Oyun konusunda tutkulu, Switch Player Magazine'de İnceleme Editörü olarak çalışıyor ve çevrimiçi yayıncılık ve web geliştirmenin tüm yönleriyle ilgileniyor.

Bobby Jack'dan Daha Fazla

Haber bültenimize abone ol

Teknik ipuçları, incelemeler, ücretsiz e-kitaplar ve özel fırsatlar için bültenimize katılın!

Bir adım daha…!

Lütfen size az önce gönderdiğimiz e-postadaki e-posta adresinizi onaylayın.

.