0Pricing
Kotlin Academy · Lekcja

Deklarowanie data class

Zwięzłe klasy modelu

Deklarowanie data class to bezpłatna lekcja Kotlin Academy na CoddyKit. To lekcja 1 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Kotlin Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Kotlin Academy zawiera 4 lekcji w sumie.

Klasy przechowujące dane

Wiele klas służy wyłącznie do grupowania kilku wartości: użytkownika, punktu czy wyniku.

Kotlin udostępnia klasę danych — zwięzły sposób deklarowania takich klas modelu, wraz z wieloma gotowymi funkcjami.

Deklarowanie klasy danych

Należy dodać słowo kluczowe data przed class i wypisać właściwości w konstruktorze.

Ta pojedyncza linia zapewnia w pełni funkcjonalny model.

data class User(val name: String, val age: Int)

fun main() {
    val u = User("Alice", 30)
    println(u.name)
    println(u.age)
}

Automatyczne toString

Klasa danych automatycznie generuje czytelne toString(). Wyświetlenie obiektu pokazuje nazwę jego klasy i wartości właściwości.

W przypadku zwykłej klasy wyświetlony zostałby trudny do odczytania skrót.

data class User(val name: String, val age: Int)

fun main() {
    val u = User("Bob", 25)
    println(u)
}

Właściwości są wymagane

Klasa danych musi deklarować co najmniej jedną właściwość w konstruktorze podstawowym.

Każdy parametr powinien być oznaczony jako val albo var, aby stał się właściwością używaną przez generowane funkcje.

data class Point(val x: Int, val y: Int)

fun main() {
    val p = Point(3, 4)
    println(p)
}

Właściwości val i var

Należy używać val dla właściwości tylko do odczytu, a var dla właściwości zmiennych.

Zwykle preferuje się niezmienne klasy danych, ponieważ łatwiej zrozumieć ich działanie.

data class Counter(var count: Int)

fun main() {
    val c = Counter(0)
    c.count = 5
    println(c)
}

Domyślne wartości parametrów

Podobnie jak każdy konstruktor, konstruktor klasy danych może mieć wartości domyślne.

Dzięki temu wywołujący mogą pomijać parametry, których nie muszą ustawiać.

data class User(val name: String, val active: Boolean = true)

fun main() {
    val u = User("Mia")
    println(u)
}

Argumenty nazwane

Połączenie klas danych z argumentami nazwanymi pozwala tworzyć obiekty w sposób jasny i czytelny bez dodatkowych komentarzy.

Jest to szczególnie pomocne, gdy kilka właściwości ma ten sam typ.

data class Rect(val width: Int, val height: Int)

fun main() {
    val r = Rect(width = 10, height = 5)
    println(r)
}

Dodawanie metod

Klasa danych nadal może mieć ciało zawierające własne funkcje i właściwości wyliczane.

Generowane funkcje współistnieją z tym, co Państwo dodadzą.

data class Circle(val radius: Double) {
    fun area(): Double = 3.14159 * radius * radius
}

fun main() {
    val c = Circle(2.0)
    println(c.area())
}

Właściwości poza konstruktorem

Tylko właściwości w konstruktorze podstawowym są używane przez generowane funkcje.

Właściwość zadeklarowana w ciele należy do obiektu, ale jest pomijana przez toString, equals i podobne funkcje.

data class User(val name: String) {
    var nickname: String = ""
}

fun main() {
    val u = User("Alex")
    u.nickname = "Al"
    println(u) // nickname not shown
    println(u.nickname)
}

Kiedy używać klas danych

Warto sięgnąć po klasę danych, gdy obiekt służy głównie do przechowywania wartości:

  • DTO i modele API
  • Współrzędne, zakresy, wyniki
  • Pakiety konfiguracji

Należy unikać ich w przypadku klas opartych na złożonym działaniu lub dziedziczeniu.

Zastosowanie w praktyce

Klasa danych to zwięzła deklaracja modelu:

  • Należy poprzedzić ją słowem data i wypisać właściwości
  • Otrzymują Państwo bez dodatkowego kodu funkcje toString, equals, hashCode i copy
  • Obsługuje wartości domyślne, argumenty nazwane i dodatkowe metody
data class Book(val title: String, val pages: Int = 0)

fun main() {
    val b = Book(title = "Kotlin", pages = 300)
    println(b)
}

Szybkie sprawdzenie

Sprawdźcie Państwo swoją wiedzę na temat deklarowania klas danych.

Podsumowanie

Poznali Państwo sposób deklarowania klas danych:

  • Słowo kluczowe data generuje standardowe funkcje
  • Właściwości konstruktora determinują generowane zachowanie
  • Wartości domyślne i argumenty nazwane zapewniają elastyczność

W następnej części szczegółowo poznają Państwo generowane funkcje copy i equals.

Często zadawane pytania

Czy lekcja „Deklarowanie data class” jest bezpłatna?

Tak — pełny tekst „Deklarowanie data class” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Kotlin Academy, przejdź na CoddyKit PRO. Kurs Kotlin Academy zawiera 4 lekcji w sumie.

Co nauczysz się w „Deklarowanie data class”?

Zwięzłe klasy modelu Ćwiczysz Kotlin Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.

Czy potrzebuję doświadczenia, aby zacząć Kotlin Academy?

Nie wymagamy żadnego doświadczenia. Kotlin Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 1 z 4.

Ile czasu zajmuje lekcja „Deklarowanie data class”?

Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.

Czy mogę pisać i uruchamiać kod w tej lekcji Kotlin Academy?

Tak. Każda lekcja Kotlin Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.

Wszystkie lekcje w tym kursie

  1. Deklarowanie data class
  2. copy i equals
  3. Deklaracje destrukturyzujące
  4. Data class w kolekcjach
← Powrót do Kotlin Academy