Menu
Coddy logo textTech

Adlandırılmış Yapıcılar

Coddy'nin Dart Journey'sinin Nesne Yönelimli Programlama bölümünün bir parçası. Ders 11 / 110.

Adlandırılmış yapıcılar, bir sınıf için her biri amacını netleştiren açıklayıcı bir isme sahip olan birden fazla yapıcı oluşturmanıza olanak tanır. Bu, bir nesneyi başlatmak için farklı yollara ihtiyaç duyduğunuzda özellikle yararlıdır.

Söz dizimi, sınıf adının ardından bir nokta ve kurucu adının kullanılması şeklindedir:

class Point {
  int x;
  int y;

  // Normal kurucu
  Point(this.x, this.y);

  // Başlangıç noktası için isimlendirilmiş kurucu
  Point.origin() : x = 0, y = 0;

  // Tek bir değerden isimlendirilmiş kurucu
  Point.diagonal(int value) : x = value, y = value;
}

Adlandırılmış her kurucu, nesneler oluşturmak için açık ve okunabilir bir yol sağlar:

Point p1 = Point(3, 5);
Point p2 = Point.origin();
Point p3 = Point.diagonal(10);

print('p1: (${p1.x}, ${p1.y})'); // p1: (3, 5)
print('p2: (${p2.x}, ${p2.y})'); // p2: (0, 0)
print('p3: (${p3.x}, ${p3.y})'); // p3: (10, 10)

İsimlendirilmiş kurucular kodunuzu daha açıklayıcı hale getirir. Point(0, 0) ifadesinin ne anlama geldiğini tahmin etmek yerine, Point.origin() niyeti anında iletir. Bu desen Dart kütüphanelerinde yaygındır ve kendi kendini belgeleyen kodlar oluşturmaya yardımcı olur.

challenge icon

Görev

Kolay

Adlandırılmış kurucuların gücünü sergileyen bir sıcaklık dönüştürücü oluşturalım. Başlangıç birimine bağlı olarak farklı şekillerde başlatılabilen bir Temperature sınıfı oluşturacaksın.

Kodunu iki dosyaya ayıracaksın:

  • temperature.dart: Temperature örnek değişkenine sahip bir double celsius sınıfı tanımla. Sınıfın, sıcaklık oluşturmak için üç farklı yol sağlamalıdır:
    • Doğrudan bir Celsius değeri alan normal kurucu Temperature(this.celsius)
    • Bir Fahrenheit değeri kabul eden ve şu formülü kullanarak bunu Celsius'a dönüştüren adlandırılmış kurucu Temperature.fromFahrenheit: (fahrenheit - 32) * 5 / 9
    • Donma noktasında (0 derece Celsius) bir sıcaklık oluşturan adlandırılmış kurucu Temperature.freezing()
    display() yazdıran bir [celsius]C metodu ekle.
  • main.dart: Sıcaklık sınıfını içe aktar ve üç sıcaklık nesnesi oluştur:
    • 25.0 ile normal kurucuyu kullanarak bir tane
    • fromFahrenheit ile 98.6 kullanarak bir tane
    • freezing() kullanarak bir tane
    Yukarıda listelenen sırayla her sıcaklık üzerinde display() metodunu çağır.

Beklenen çıktı biçimi:

25.0C
37.0C
0.0C

Kendin dene

import 'temperature.dart';

void main() {
  // TODO: 25.0 ile normal yapıcıyı (constructor) kullanarak bir Temperature oluşturun
  
  // TODO: 98.6 ile fromFahrenheit kullanarak bir Temperature oluşturun
  
  // TODO: freezing() kullanarak bir Temperature oluşturun
  
  // TODO: Her bir sıcaklık üzerinde sırasıyla display() metodunu çağırın
}
quiz iconKendini test et

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

Nesne Yönelimli Programlama bölümündeki tüm dersler

Kendi başına pratik yap: Online Dart derleyicisi