Класс Object, Any, Nothing, Unit

Object

В Java класс Object является корневым классом для всех других классов. Вот некоторые из основных методов, которые предоставляет класс Object:

  1. equals(Object obj): Метод equals() используется для сравнения двух объектов на равенство. По умолчанию этот метод сравнивает ссылки на объекты, но его можно переопределить в подклассах для сравнения значений полей объектов.

  2. hashCode(): Метод hashCode() возвращает хеш-код объекта, который используется в хеш-таблицах и других структурах данных для быстрого поиска объектов.

  3. toString(): Метод toString() возвращает строковое представление объекта. По умолчанию он возвращает строку, содержащую имя класса и хеш-код объекта, но его можно переопределить для возврата более информативного представления.

  4. getClass(): Метод getClass() возвращает объект Class, который представляет класс объекта. Этот метод полезен для получения информации о типе объекта во время выполнения.

  5. notify() и notifyAll(): Эти методы используются для уведомления ожидающих потоков о изменении состояния объекта. Метод notify() уведомляет один случайный поток, который ждет на этом объекте, а метод notifyAll() уведомляет все ожидающие потоки.

  6. wait(): Метод wait() вызывает текущий поток на ожидание до тех пор, пока другой поток не вызовет метод notify() или notifyAll() для объекта.

  7. finalize(): Этот метод вызывается сборщиком мусора перед удалением объекта. Он может быть переопределен для выполнения различных действий, например, освобождения ресурсов.

Any

Any является корневым классом в иерархии наследования Kotlin. Все классы в Kotlin неявно наследуются от класса Any. Any имеет несколько методов, таких как equals(), hashCode(), toString(), которые можно переопределить в пользовательских классах.

Nothing

Nothing представляет тип, который не имеет значений. Он используется в ситуациях, когда функция никогда не возвращает результат (например, функция, бросающая исключение), или когда программа завершает работу из-за ошибки. Nothing является подтипом всех других типов, что означает, что он может быть приведен к любому другому типу.

Unit

Unit - это объект, который представляет отсутствие значения, аналогично void в Java. В Kotlin Unit является типом-заглушкой, который возвращается из функций, которые ничего не возвращают явно (т.е. функции, которые возвращают Unit можно опускать из обозначения типа в объявлении функции). Также Unit может быть использован в качестве типа параметра или возвращаемого типа в функциях, которые не должны ничего возвращать или принимать.