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 szablonval 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ścitoString()— czytelny dla człowieka wynikcopy()— 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 Animaloverride 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 copycompanion object— elementy na poziomie klasy (statyczne)- Klasy
openioverridedo dziedziczenia - Deklaracje
objectdla 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
- Bezpieczeństwo wartości null
- Klasy i obiekty
- Klasy danych i klasy zapieczętowane
- Funkcje rozszerzające i funkcje wyższego rzędu