CodeBlanks Logo Icon CodeBlanks

Yapıcı temelleri

Sınıf yapıcı metodunu öğrenirsin.

Yapıcı temelleri

Bir yapıcı (constructor), bir örneğin oluşturulurken ilk değer almasını sağlar. Yapıcının ismi sınıf ismiyle aynıdır, dönüş türü yoktur ve new ile çağrılır. Yapıcı, alanlara başlangıç değeri atamak için kullanılır.

Örnek: class Point { int x; Point() { x = 0; } }. Burada Point() bir yapıcıdır. new Point() çağrıldığında bu yapıcı çalışır ve x alanına sıfır atanır. Yapıcıda return kullanılmaz; dönüş türü yazılmaz. Sınıf ismiyle birebir aynı olmalıdır.

Yapıcı çağrısı

Bir yapıcı new anahtar kelimesiyle çağrılır. Çağrı, bellekte yeni bir örnek oluşturur ve yapıcı gövdesini çalıştırır. Yapıcı gövdesi tamamlandığında örnek kullanıma hazırdır.

Örnek: Point p = new Point();. Burada new Point() ifadesi Point yapıcısını çağırır. Yapıcı gövdesi x = 0; satırını çalıştırır ve p.x sıfır olur. Yapıcı tanımlanmadıysa Java otomatik olarak boş bir yapıcı ekler; bu yüzden new Point() her zaman çalışır.

Uygulama Point sınıfına yapıcı ekle

Point adında bir sınıf tanımla. İçine int x ve int y alanlarını ekle. Parametresiz bir yapıcı yaz; gövdesinde x ve y alanlarına sıfır ata. main içinde bir Point örneği oluştur ve x ile y alanlarını ayrı satırlarda yazdır.

Başlangıç kodu

Main.java
// Point sınıfını tanımla
// yapıcı ekle
// main içinde örnekle ve yazdır

Örnek çözüm

Main.java
class Point {
    int x;
    int y;
    Point() {
        x = 0;
        y = 0;
    }
    public static void main(String[] args) {
        Point p = new Point();
        System.out.println(p.x);
        System.out.println(p.y);
    }
}

Beklenen çıktı

0
0

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 Hangisi bir yapıcı tanımıdır?

  • Point() { } Doğru cevap
  • void Point() { }
  • constructor Point() { }
  • def Point(): pass

Açıklama: Yapıcının ismi sınıf ismiyle aynıdır ve dönüş türü yoktur.

2 Yapıcı tanımını tamamla

Soru
class Point {
    int x;
    ____ {
        x = 0;
    }
}
Cevap
class Point {
    int x;
    Point {
        x = 0;
    }
}

Açıklama: Yapıcı ismi sınıf ismiyle aynı olmalı.

3 Yapıcı bölümlerini eşle

Kavram Anlamı
Point Yapıcı ismi
() Parametre listesi
{ } Gövde
new Çağrı anahtar kelimesi

Orta seviye bölümündeki tüm dersler