Java'da Yapıcı Nedir ve Nasıl Kullanırsınız?

Java'da Yapıcı Nedir ve Nasıl Kullanırsınız?

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.





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

Yapıcılar, nesne yönelimli programlamanın temelidir 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:





public class Circle {
public double radius;
public double area() { return 3.14159 * radius * radius; }
}

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

Circle c = new Circle();
c.radius = 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:



public class Circle {
private double radius;
public double area() { return 3.14159 * radius * radius; }
public void setRadius(double r) { radius = r; }
}

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

reddit'te karma ne anlama geliyor
Circle c = new Circle();
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 Burada.





Basit Yapıcı Örnekleri

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

public class Circle {
public Circle() {}
}

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:

public class Circle {
public Circle() { radius = 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:

public class Circle {
public Circle(double r) { radius = r; }
}

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

fotoğrafları samsung'dan bilgisayara aktarma
Circle c = new Circle(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() { radius = 1; }
public Circle(double r) { radius = r; }

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

Circle c1 = new Circle(2);
Circle c2 = new Circle();
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:

public class Circle {
public double x, y, radius;
public Circle() { radius = r; }
public Circle(double r) { radius = r; }
public Circle(double x, double y, double r) {
this.x = x; this.y = y; radius = r;
}

public double area() { return 3.14159 * radius * radius; }
}

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

Bir 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:

public Circle(Circle c) {
this.x = c.x;
this.y = c.y;
this.radius = c.radius;
}

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. Bugün nasılsın anahtar kelime:

public Circle(Circle c) {
this(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:

super(x, y);

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

public class Shape {
double x, y;
public Shape(double _x, double _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:

public class Circle extends Shape {
double radius;
public Circle(double r) { super(0, 0); radius = r; }
public Circle(double x, double y, double r) {
super(x, y);
radius = 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:

public class Test {
private static Test uniqueInstance = new Test();
private Test() { }
public static Test getInstance() {
return uniqueInstance;
}
}

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.

Paylaş Paylaş Cıvıldamak 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(58 Makale Yayımlandı)

Bobby, yirmi yılı aşkın bir süredir yazılım geliştiricisi olarak çalışan bir teknoloji tutkunu. Oyun oynama 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.

gpus şu anda neden bu kadar pahalı
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!

Abone olmak için buraya tıklayın