CodeBlanks Logo Icon CodeBlanks

Object sınıfı

Object sınıfını ve equals/hashCode'u öğrenirsin.

Object sınıfı

Java'da tüm sınıflar dolaylı olarak Object sınıfından miras alır. Bir sınıf extends belirtmese bile Object'in alt sınıfıdır. Object, toString, equals ve hashCode gibi metotlar sunar.

Örnek: class Book { } yazarsan Book otomatik olarak Object'i miras alır. new Book().toString() çağrısı çalışır; varsayılan olarak sınıf adı ve bellek konumunu verir. toString, equals ve hashCode metodlarını geçersiz kılarak kendi davranışını tanımlayabilirsin. Bu metotlar koleksiyonlarda ve karşılaştırmalarda önemli rol oynar.

equals metodu

equals metodu iki nesnenin eşit olup olmadığını belirler. Varsayılan Object.equals referans karşılaştırması yapar; aynı nesne mi diye bakar. İçeriğe göre karşılaştırma için equals'i geçersiz kılarsın.

Örnek: Book sınıfında title aynıysa iki kitap eşit sayılsın. @Override public boolean equals(Object o) { ... } yazarak title alanını karşılaştırırsın. equals geçersiz kılınınca hashCode da geçersiz kılınmalıdır; bu ikisi birlikte çalışır. Koleksiyonlar bu iki metodu kullanarak nesneleri bulur ve gruplar.

Uygulama Book sınıfında toString'i geçersiz kıl

Book adında bir sınıf tanımla; içine String title ve int pages alanlarını ekle. @Override ile public String toString() metodunu ekle; title + " (" + pages + " sayfa)" döndürsün. main içinde bir Book örneği oluştur, alanlara değer ata ve örneği println ile yazdır.

Başlangıç kodu

Main.java
// Book sınıfını tanımla
// toString metodunu geçersiz kıl
// main içinde örnekle ve yazdır

Örnek çözüm

Main.java
class Book {
    String title;
    int pages;
    @Override
    public String toString() {
        return title + " (" + pages + " sayfa)";
    }
    public static void main(String[] args) {
        Book b = new Book();
        b.title = "Java";
        b.pages = 320;
        System.out.println(b);
    }
}

Beklenen çıktı

Java (320 sayfa)

Soru ve cevaplar

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

1 toString'i Object'ten geçersiz kıl

Soru
class Book {
    String title;
    @Override
    public ____ toString() {
        return title;
    }
}
Cevap
class Book {
    String title;
    @Override
    public String toString() {
        return title;
    }
}

Açıklama: toString bir String döndürmelidir.

2 Object metotlarını eşle

Kavram Anlamı
toString Dizgeye dönüştürme
equals Eşitlik karşılaştırması
hashCode Karma değeri
Object Tüm sınıfların üst sınıfı

3 Tüm sınıflar hangi sınıftan miras alır?

  • String
  • Object Doğru cevap
  • System
  • Class

Açıklama: Object — tüm sınıflar dolaylı olarak Object'ten miras alır.

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