Sobes.tech
Junior

Object sinfi haqqında nə bilirsən?

sobes.tech Süni İntellekt

AI-dan cavab

java.lang.Object Java siniflar hiyerarşisində əsas sinifdir. Hər bir sinif Object-dən dolayı irsən alır.

Əsas metodlar:

  • equals(Object obj): Mövcud obyekti başqa bir obyektlə bərabərliyi üçün müqayisə edir. Standart olaraq, referansları müqayisə edir.
  • hashCode(): Obeyektin hash kodunu qaytarır. Hash-əsaslı kolleksiyalarda (məsələn, HashMap, HashSet) istifadə olunur. Əgər iki obyekt equals()-ə görə bərabərdirsə, onların hashCode()-ları da eyni olmalıdır.
  • toString(): Obeyektin mətn təqdimatını qaytarır. Standart olaraq, sinif adı + @ + hash kodu onaltılıq formatda qaytarır. Əksər hallarda, daha məlumatlı təqdimat üçün yenidən yazılır.
  • getClass(): İcrada obyektin sinfini təmsil edən Class obyektini qaytarır.
  • notify(): Bu obyektin monitorunda gözləyən bir ipi yenidən işə salır.
  • notifyAll(): Bu obyektin monitorunda gözləyən bütün ipləri yenidən işə salır.
  • wait() / wait(long timeout) / wait(long timeout, int nanos): Mövcud ipi, başqa bir ip notify() və ya notifyAll() çağırana və ya göstərilən vaxt keçəndən sonra gözləməyə məcbur edir. Yalnız sinxronlaşdırılmış bloklar və ya metodlar daxilində çağırılır.
  • clone(): Bu obyektin nüsxəsini yaradır və qaytarır. Cloneable interfeysinin tətbiqini tələb edir.
  • finalize(): Obeyekt silinməzdən əvvəl çöp toplayıcı tərəfindən çağırılır. İcranın qeyri-müəyyənliyi səbəbindən istifadə etmək tövsiyə edilmir.

equals()hashCode() metodlarının yenidən yazılması nümunəsi:

class Person {
    private String name;
    private int age;

    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }

    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;
        Person person = (Person) o;
        return age == person.age &&
               Objects.equals(name, person.name);
    }

    @Override
    public int hashCode() {
        return Objects.hash(name, age);
    }

    @Override
    public String toString() {
        return "Person{" +
               "name='" + name + '\'' +
               ", age=" + age +
               '}';
    }
}

Object sinfi Java-da obyektlərin işləməsi üçün vacib olan əsas mexanizmləri təmin edir, məsələn, müqayisə, hash, ipların sinxronizasiyası və sinif haqqında məlumat əldə etmək.