Android Academy · leksjon

Klasser og objekter

Definer klasser med egenskaper og metoder, bruk konstruktører, forstå arv og grensesnitt, og skriv objektorientert kode på idiomatisk Kotlin-vis.

Leksjon 2 av 411 trinn

Klasser og objekter er en gratis leksjon i Android Academy på CoddyKit. Dette er leksjon 2 av 4. Du kan lese valgfritt 3 leksjoner fra denne læringsstien gratis i sin helhet – deretter låser CoddyKit PRO opp alle leksjoner, samt praktisk øving med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i Android Academy, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i Android Academy inneholder totalt 4 leksjoner.

Hva er en klasse?

En klasse er en mal for å opprette objekter. Den samler relaterte data (egenskaper) og atferd (funksjoner).

  • class Dog — definerer malen
  • val myDog = Dog() — oppretter en instans (et objekt)

Eksempel: En User-klasse som inneholder navn, alder og e-post.

Definere en klasse

Kotlin-klasser har en konsis syntaks for primærkonstruktøren:

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())
}

Dataklasser

En dataklasse passer perfekt til å lagre data. Legg til nøkkelordet data, så genererer Kotlin automatisk:

  • equals() / hashCode() — sammenligning etter verdi
  • toString() — lesbar tekstlig representasjon
  • copy() — opprett en endret kopi

Eksempel på dataklasse

Dataklasser er svært nyttige når du representerer modellobjekter:

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)
}

Companion-objekter

Et companion-objekt inneholder medlemmer som tilhører selve klassen, ikke en bestemt instans — omtrent som static i Java.

Få tilgang til dem via klassenavnet: User.create()

Eksempel på companion-objekt

Bruk companion-objekter til factory-metoder og konstanter:

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
}

Arv

Kotlin-klasser er final som standard (kan ikke utvides). Merk en klasse med open for å tillate arv.

  • open class Animal — kan utvides
  • class Dog : Animal() — utvider Animal
  • override fun sound() — overstyrer en funksjon fra foreldreklassen

Eksempel på arv

Bygg et enkelt klassehierarki:

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()}")
}

Objektdeklarasjoner

En object-deklarasjon oppretter en singleton — en klasse med nøyaktig én instans, som opprettes når den brukes første gang.

Bruk den til verktøy, administratorer eller hva som helst som bare skal ha én instans.

Kort sjekk

Hvilken funksjon tilbyr en Kotlin-data class automatisk?

Oppsummering: Klasser og objekter

Dette har du lært om Kotlins byggeblokker for objektorientert programmering:

  • Klasser med primærkonstruktører og medlemsfunksjoner
  • data class — automatisk genererte equals, toString og copy
  • companion object — medlemmer på klassenivå (static)
  • open-klasser og override for arv
  • object-deklarasjoner for singletons

Du er klar til å bygge ekte Android-apper!

Gratis å komme i gang

Lær deg Kotlin med en AI-veileder – gratis

Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.

Kurs
36
Leksjoner
152

Ofte stilte spørsmål

Er leksjonen «Klasser og objekter» gratis?

Ja – du kan lese valgfritt 3 av leksjonene i læringsstien Android Academy, inkludert «Klasser og objekter», gratis i sin helhet her på nettet. Deretter låser CoddyKit PRO opp alle leksjoner, samt interaktiv øving med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Kurset i Android Academy inneholder totalt 4 leksjoner.

Hva lærer jeg i «Klasser og objekter»?

Definer klasser med egenskaper og metoder, bruk konstruktører, forstå arv og grensesnitt, og skriv objektorientert kode på idiomatisk Kotlin-vis. Du øver på Android Academy med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.

Trenger jeg erfaring for å begynne med Android Academy?

Ingen tidligere erfaring er nødvendig. Android Academy på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 2 av 4.

Hvor lang tid tar leksjonen «Klasser og objekter»?

De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.

Kan jeg skrive og kjøre kode i denne Android Academy-leksjonen?

Ja. Alle Android Academy-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.

Alle leksjonene i dette kurset

  1. Null-sikkerhet
  2. Klasser og objekter
  3. Data-klasser og sealed-klasser
  4. Utvidelsesfunksjoner og høyereordensfunksjoner
← Tilbake til Android Academy