TGViewer
Kotlin | Вопросы собесов Kotlin | Вопросы собесов @easy_kotlin · 2.45K subscribers
Post #2189 283
🤔 Чем отличаются data-классы и sealed-классы?

data class — класс для хранения данных с автогенерацией equals(), hashCode(), copy().
sealed class — ограниченная иерархия классов, используется для when.

🚩`data class` – для хранения данных

data class автоматически создаёт:
equals() и hashCode() → сравнение объектов по значениям.
copy() → удобное копирование с изменением параметров.
toString() → красивый вывод.
data class User(val id: Int, val name: String)

fun main() {
val user1 = User(1, "Alice")
val user2 = user1.copy(name = "Bob") // Создаём копию с новым именем

println(user1) // User(id=1, name=Alice)
println(user2) // User(id=1, name=Bob)
}


🚩`sealed class` – для ограниченных иерархий классов

sealed class используется, когда есть фиксированное число подклассов.
sealed class NetworkState {
object Loading : NetworkState()
data class Success(val data: String) : NetworkState()
data class Error(val message: String) : NetworkState()
}

fun handleState(state: NetworkState) {
when (state) {
is NetworkState.Loading -> println("Загрузка...")
is NetworkState.Success -> println("Данные: ${state.data}")
is NetworkState.Error -> println("Ошибка: ${state.message}")
}
}


🚩Можно ли использовать `data class` внутри `sealed class`?

Да! Это лучший вариант для управления состояниями:
sealed class Result {
object Loading : Result()
data class Success(val data: String) : Result()
data class Error(val message: String) : Result()
}


Ставь 👍 и забирай 📚 Базу знаний
  • 👍 2
More from @easy_kotlin
  1. Oct 9, 2026🤔 В чем разница между linked list и array list? Являются двумя различными типами коллекци…
  2. Oct 8, 2026🤔 Для проектов в которых есть несколько модулей, там может быть много Android Manifest'ов…
  3. Oct 7, 2026🤔 Что такое ProGuard? ProGuard — это инструмент для: - Минификации (сжатие имён классов,…
  4. Oct 7, 2026🤔 Расскажи подробно, что из себя представляет каждый компонент Аndroid-приложения? Androi…
  5. Oct 7, 2026🔥 Скрытые вакансии с удаленной работой для Android разработчика, которые нигде больше не…
  6. Oct 6, 2026🤔 Что известно про генерации Young, Old в GC? - Young Generation: - Содержит новые объект…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →