Класс Object, Any, Nothing, Unit
В Java класс Object
является корневым классом для всех других классов. Вот некоторые из основных методов, которые предоставляет класс Object
:
equals(Object obj): Метод equals()
используется для сравнения двух объектов на равенство. По умолчанию этот метод сравнивает ссылки на объекты, но его можно переопределить в подклассах для сравнения значений полей объектов.
hashCode(): Метод hashCode()
возвращает хеш-код объекта, который используется в хеш-таблицах и других структурах данных для быстрого поиска объектов.
toString(): Метод toString()
возвращает строковое представление объекта. По умолчанию он возвращает строку, содержащую имя класса и хеш-код объекта, но его можно переопределить для возврата более информативного представления.
getClass(): Метод getClass()
возвращает объект Class
, который представляет класс объекта. Этот метод полезен для получения информации о типе объекта во время выполнения.
notify() и notifyAll(): Эти методы используются для уведомления ожидающих потоков о изменении состояния объекта. Метод notify()
уведомляет один случайный поток, который ждет на этом объекте, а метод notifyAll()
уведомляет все ожидающие потоки.
wait(): Метод wait()
вызывает текущий поток на ожидание до тех пор, пока другой поток не вызовет метод notify()
или notifyAll()
для объекта.
finalize(): Этот метод вызывается сборщиком мусора перед удалением объекта. Он может быть переопределен для выполнения различных действий, например, освобождения ресурсов.
Any
является корневым классом в иерархии наследования Kotlin. Все классы в Kotlin неявно наследуются от класса Any
. Any
имеет несколько методов, таких как equals()
, hashCode()
, toString()
, которые можно переопределить в пользовательских классах.
Nothing
представляет тип, который не имеет значений. Он используется в ситуациях, когда функция никогда не возвращает результат (например, функция, бросающая исключение), или когда программа завершает работу из-за ошибки. Nothing
является подтипом всех других типов, что означает, что он может быть приведен к любому другому типу.
Unit
- это объект, который представляет отсутствие значения, аналогично void
в Java. В Kotlin Unit
является типом-заглушкой, который возвращается из функций, которые ничего не возвращают явно (т.е. функции, которые возвращают Unit
можно опускать из обозначения типа в объявлении функции). Также Unit
может быть использован в качестве типа параметра или возвращаемого типа в функциях, которые не должны ничего возвращать или принимать.