Sobes.tech
Junior

რა გსმენიათ Object კლასზე?

sobes.tech AI

პასუხი AI-სგან

java.lang.Object Java sinflərinin hiyerarxiyasında əsas sinfdir. Hər bir sinf qeyri-rəsmi olaraq Object-dən miras alır.

Əsas metodlar:

  • equals(Object obj): Cari obyekti digər obyektlərlə bərabərliyi üçün müqayisə edir. Əsasən göstəriciləri müqayisə edir.
  • hashCode(): Obyekti hash kodunu qaytarır. Hash cədvəllərinə əsaslanan kolleksiyalarda istifadə olunur (məsələn, HashMap, HashSet). Əgər iki obyekt equals()-ə görə bərabərdirsə, onların hashCode()-ları eyni olmalıdır.
  • toString(): Obyekti mətn şəklində təqdim edir. Əsasən sinif adını + @ + hash kodunu onaltılıq formatda qaytarır. Daha çox məlumat vermək üçün yenidən tərtib olunur.
  • getClass(): İcrada obyektin sinfini təmsil edən Class obyektini qaytarır.
  • notify(): Bu obyektin monitorunda gözləyən bir iplikin icrasını davam etdirir.
  • notifyAll(): Bu obyektin monitorunda gözləyən bütün ipliklərin icrasını davam etdirir.
  • wait() / wait(long timeout) / wait(long timeout, int nanos): Cari iplik gözləməyə məcbur edir, digər ipliklər notify() və ya notifyAll() çağırana və ya göstərilən vaxt bitənə qədər. Bu metod yalnız sinxronlaşdırılmış bloklardan və ya metodlardan çağırılır.
  • clone(): Bu obyektin nüsxəsini yaradır və qaytarır. Cloneable interfeysinin tətbiq olunmasını tələb edir.
  • finalize(): Tullantı toplayıcısı tərəfindən obyekt silinməzdən əvvəl çağırılır. İstifadə üçün tövsiyə edilmir, çünki icrası qeyri-müəyyən olur.

equals()hashCode() metodlarının yenidən tərtibi 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ərlə işləmək üçün əsas mexanizmləri təmin edir, məsələn, müqayisə, hash-ləmə, ipliklərin sinxronizasiyası və sinif haqqında məlumatların alınması.