НОВИНКА!
Занимательная математика от Трепачёва. Присоединяйтесь к нам!
1244 of 1310 menu

Класс Any

Класс Any является корневым суперклассом для всех классов в Kotlin. Каждый класс, который не указывает явно родительский класс, неявно наследуется от Any. Класс предоставляет базовые методы, которые доступны всем объектам.

Синтаксис

open class Any

Методы

Класс Any предоставляет следующие методы:

open operator fun equals(other: Any?): Boolean open fun hashCode(): Int open fun toString(): String

Пример

Создадим простой класс, который неявно наследуется от Any:

class Person(val name: String, val age: Int) val person = Person("John", 25) println(person.toString())

Результат выполнения кода:

Person@4eec7777

Пример

Переопределим метод toString для нашего класса:

class Person(val name: String, val age: Int) { override fun toString(): String { return "Person(name=$name, age=$age)" } } val person = Person("John", 25) println(person.toString())

Результат выполнения кода:

Person(name=John, age=25)

Пример

Переопределим метод equals для сравнения объектов:

class Person(val name: String, val age: Int) { override fun equals(other: Any?): Boolean { if (this === other) return true if (other !is Person) return false return name == other.name && age == other.age } override fun hashCode(): Int { return name.hashCode() * 31 + age } } val person1 = Person("John", 25) val person2 = Person("John", 25) val person3 = Person("Jane", 30) println(person1 == person2) println(person1 == person3)

Результат выполнения кода:

true false

Пример

Использование метода hashCode для получения хэш-кода объекта:

val person = Person("John", 25) println(person.hashCode())

Результат выполнения кода:

71988570

Смотрите также

  • ключевое слово class,
    которое используется для объявления классов
  • ключевое слово extends,
    которое используется для наследования классов
  • ключевое слово override,
    которое используется для переопределения методов
  • ключевое слово open,
    которое делает классы и методы наследуемыми
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить