0Pricing
Android Academy · Lekcja

Klasy i obiekty

Proszę definiować klasy z właściwościami i metodami, używać konstruktorów, poznać dziedziczenie i interfejsy oraz pisać idiomatyczny obiektowy kod w Kotlinie.

Klasy i obiekty to bezpłatna lekcja Android Academy na CoddyKit. To lekcja 2 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 Android Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Android Academy zawiera 4 lekcji w sumie.

Czym jest klasa?

Klasa to szablon służący do tworzenia obiektów. Łączy powiązane dane (właściwości) i zachowanie (funkcje).

  • class Dog — definiuje szablon
  • val myDog = Dog() — tworzy instancję (obiekt)

Przykład: klasa User przechowująca imię, wiek i adres e-mail.

Definiowanie klasy

Klasy w Kotlinie mają zwięzłą składnię konstruktora głównego:

class User(val name: String, var age: Int) {
    fun greet(): String {
        return "Hi, I'm $name and I'm $age years old."
    }
}

fun main() {
    val user = User("Alice", 28)
    println(user.name)     // Alice
    println(user.age)      // 28
    user.age = 29          // var can be changed
    println(user.greet())
}

Klasy danych

Klasa danych doskonale nadaje się do przechowywania danych. Dodaj słowo kluczowe data, a Kotlin automatycznie wygeneruje:

  • equals() / hashCode() — porównywanie według wartości
  • toString() — czytelny dla człowieka wynik
  • copy() — tworzenie zmodyfikowanej kopii

Przykład klasy danych

Klasy danych świetnie sprawdzają się przy reprezentowaniu obiektów modelu:

data class Product(val id: Int, val name: String, val price: Double)

fun main() {
    val p1 = Product(1, "Laptop", 999.99)
    val p2 = p1.copy(price = 899.99) // new copy with changed price

    println(p1)           // Product(id=1, name=Laptop, price=999.99)
    println(p2)           // Product(id=1, name=Laptop, price=899.99)
    println(p1 == p2)     // false (different price)
}

Obiekty towarzyszące

Obiekt towarzyszący przechowuje elementy należące do samej klasy, a nie do konkretnej instancji — podobnie jak static w Javie.

Uzyskuj do nich dostęp za pomocą nazwy klasy: User.create()

Przykład obiektu towarzyszącego

Używaj obiektów towarzyszących dla metod fabrykujących i stałych:

class Counter {
    var count = 0

    fun increment() { count++ }

    companion object {
        const val MAX = 100

        fun create(): Counter = Counter()
    }
}

fun main() {
    val c = Counter.create()
    c.increment()
    c.increment()
    println(c.count)        // 2
    println(Counter.MAX)    // 100
}

Dziedziczenie

Klasy w Kotlinie są domyślnie oznaczone jako final (nie można po nich dziedziczyć). Oznacz klasę jako open, aby zezwolić na dziedziczenie.

  • open class Animal — można po niej dziedziczyć
  • class Dog : Animal() — dziedziczy po Animal
  • override fun sound() — przesłania funkcję klasy nadrzędnej

Przykład dziedziczenia

Zbuduj prostą hierarchię klas:

open class Shape {
    open fun area(): Double = 0.0
}

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

class Rectangle(val w: Double, val h: Double) : Shape() {
    override fun area(): Double = w * h
}

fun main() {
    val shapes: List<Shape> = listOf(
        Circle(5.0),
        Rectangle(4.0, 3.0)
    )
    for (s in shapes) println("Area: ${s.area()}")
}

Deklaracje object

Deklaracja object tworzy singleton — klasę z dokładnie jedną instancją, tworzoną leniwie przy pierwszym użyciu.

Używaj jej dla narzędzi, menedżerów lub wszystkiego, co powinno mieć tylko jedną instancję.

Szybkie sprawdzenie

Jaką funkcję klasa data class w Kotlinie zapewnia automatycznie?

Podsumowanie: klasy i obiekty

Dowiedziałeś się, jakie są podstawowe elementy programowania obiektowego w Kotlinie:

  • Klasy z konstruktorami głównymi i funkcjami składowymi
  • data class — automatycznie generowane equals, toString i copy
  • companion object — elementy na poziomie klasy (statyczne)
  • Klasy open i override do dziedziczenia
  • Deklaracje object dla singletonów

Jesteś gotowy do tworzenia prawdziwych aplikacji na Androida!

Często zadawane pytania

Czy lekcja „Klasy i obiekty” jest bezpłatna?

Tak — pełny tekst „Klasy i obiekty” 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 Android Academy, przejdź na CoddyKit PRO. Kurs Android Academy zawiera 4 lekcji w sumie.

Co nauczysz się w „Klasy i obiekty”?

Proszę definiować klasy z właściwościami i metodami, używać konstruktorów, poznać dziedziczenie i interfejsy oraz pisać idiomatyczny obiektowy kod w Kotlinie. Ćwiczysz Android 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ąć Android Academy?

Nie wymagamy żadnego doświadczenia. Android 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 2 z 4.

Ile czasu zajmuje lekcja „Klasy i obiekty”?

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 Android Academy?

Tak. Każda lekcja Android 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. Bezpieczeństwo wartości null
  2. Klasy i obiekty
  3. Klasy danych i klasy zapieczętowane
  4. Funkcje rozszerzające i funkcje wyższego rzędu
← Powrót do Android Academy