CodeBlanks Logo Icon CodeBlanks

Metadata

@annotation ile metadata öğrenirsin.

Annotation ile üst veri

Bir annotation (üst veri), bir kod öğesinin üstüne eklenen etikettir. Dart'ta @ işaretiyle başlar; örneğin @override. Annotation'lar derleyiciye ve araçlara ek bilgi verir.

En bilinen örnek @override'dir. Bir alt sınıf metodu üst sınıfın metodunu yeniden tanımladığında @override yazılır. Bu, toString gibi yöntemleri geçersiz kılmak için yaygındır.

Annotation'lar sınıfları, metotları, alanları ve parametreleri etiketleyebilir. Kendi annotation'ını da yazabilirsin; bir sonraki derste bunu göreceğiz.

Annotation nereye eklenir?

Annotation'lar birçok kod öğesine eklenebilir. Bir sınıfın, metodun, alanın ya da parametrenin üstüne yazılır. Örneğin @Deprecated('eski') bir metodu eskimiş olarak işaretler.

Birden fazla annotation yan yana yazılabilir: @override @Deprecated('eski'). Dart hepsini soldan sağa okur.

Annotation'lar araçlar için sinyaldır. @override yanlış bir geçersiz kılma yapıldığında derleyiciyi uyarır; @deprecated ise kullanıcıyı yeni bir yönteme yönlendirir.

Uygulama Point ve @override

Bir Point sınıfı tanımla: int x ve int y alanları, Point(this.x, this.y) constructor'ı olsun. @override ile işaretlenmiş bir String toString() metodu ekle; '($x, $y)' döndürsün. main içinde Point(3, 4) oluştur ve print ile yazdır.

Başlangıç kodu

main.dart
// Point sınıfını tanımla: x, y, constructor ve toString metodu

void main() {
  // bir Point oluştur ve yazdır
}

Örnek çözüm

main.dart
class Point {
  int x;
  int y;
  Point(this.x, this.y);
  @override
  String toString() => '($x, $y)';
}

void main() {
  print(Point(3, 4));
}

Beklenen çıktı

(3, 4)

Soru ve cevaplar

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

1 Annotation ne işe yarar?

  • Koda üst veri ekler Doğru cevap
  • Bir değişkeni siler
  • Bir döngüyü durdurur
  • Bir sınıfı kalıtım yapar

Açıklama: annotation koda üst veri ekler.

2 @override yazımı

Soru
class Dog extends Animal {
  @____
  String toString() => 'Köpek';
}
Cevap
class Dog extends Animal {
  @override
  String toString() => 'Köpek';
}

Açıklama: @override küçük harfle yazılır.

3 Annotation parçalarını eşleştir

Kavram Anlamı
@override Geçersiz kılma
@ Annotation işareti
@deprecated Eskimiş işaret
toString() Geçersiz kılınan metod

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