CodeBlanks Logo Icon CodeBlanks

Yerleşik annotation'lar

@Override ve @Deprecated yerleşik annotation'ları öğrenirsin.

Yerleşik annotation'lar

Java derleyicisi bazı annotation'ları (etiketleri) önceden tanımlar. Bunlar kodun davranışını değiştirmez ama derleyiciye ipucu verir ve hataları önceden yakalar.

Üç temel yerleşik annotation: @Override bir yöntemin üst sınıftakini geçersiz kıldığını denetler; @Deprecated artık kullanılmaması gereken bir öğeyi işaretler; @SuppressWarnings seçilen uyarıları susturur. Her biri @ işaretiyle başlar ve değiştiricinin hemen üstüne yazılır.

@SuppressWarnings ile uyarı susturma

@SuppressWarnings belirli uyarı türlerini kapatır. Yaygın değerler: "unchecked" ham türlerden, "deprecation" eski API kullanımından, "unused" kullanılmayan değişkenlerden kaynaklanan uyarıları bastırır.

Örnek: @SuppressWarnings("unchecked") bir yöntemin üstüne yazılırsa o yöntemdeki unchecked uyarıları görünmez. Uyarıyı yalnızca en dar kapsamda susturmak iyi bir alışkanlıktır; tüm sınıfı kapsamak yerine tek yönteme uygulamak tercih edilir.

Uygulama @Override ile toString yaz

Bir Product sınıfı tanımla: name alanı ve kurucu içerir. toString yöntemini @Override ile işaretle ve "Product: " + name döndür. main içinde bir ürün oluşturup System.out.println ile yazdır.

Başlangıç kodu

Main.java
// Product sınıfını tanımla
// toString yöntemini geçersiz kıl
// main içinde ekrana yazdır

Örnek çözüm

Main.java
public class Product {
    private String name;
    public Product(String name) { this.name = name; }
    @Override
    public String toString() { return "Product: " + name; }
    public static void main(String[] args) {
        System.out.println(new Product("kalem"));
    }
}

Beklenen çıktı

Product: kalem

Soru ve cevaplar

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

1 Hangi annotation, bir yöntemin üst sınıf yöntemini geçersiz kıldığını derleyiciye denetletir?

  • @SuppressWarnings
  • @Deprecated
  • @Override Doğru cevap
  • @FunctionalInterface

Açıklama: @Override derleyiciye imzayı üst sınıfla karşılaştırmasını söyler.

2 @Override etiketini oluştur

Soru
public class Animal {
    @____
    public String toString() { return "Animal"; }
}
Cevap
public class Animal {
    @Override
    public String toString() { return "Animal"; }
}

Açıklama: @Override etiketi toString'in geçersiz kılındığını gösterir.

3 Yerleşik annotation'ları eşleştir

Kavram Anlamı
@Override Geçersiz kılma denetimi
@Deprecated Eski öğe işareti
@SuppressWarnings Uyarı susturma
@FunctionalInterface Tek soyut yöntem

İleri seviye bölümündeki tüm dersler