Klasser og objekter
Definér klasser med properties og metoder, brug konstruktører, forstå nedarvning og interfaces, og skriv objektorienteret kode på idiomatisk Kotlin.
Klasser og objekter er en gratis Android Academy-lektion på CoddyKit. Dette er lektion 2 af 4. Du kan læse alle 3 lektioner i dette læringsspor gratis i deres fulde længde — derefter låser CoddyKit PRO alle lektioner op samt praktiske øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. Den er en del af læringsforløbet i Android Academy, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. Android Academy-kurset indeholder 4 lektioner i alt.
Hvad er en klasse?
En klasse er en skabelon til oprettelse af objekter. Den samler relaterede data (egenskaber) og adfærd (funktioner).
class Dog— definerer skabelonenval myDog = Dog()— opretter en instans (et objekt)
Eksempel: En User-klasse, der indeholder navn, alder og e-mail.
Definition af en klasse
Kotlin-klasser har en kortfattet syntaks til primære konstruktører:
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 er perfekt til at indeholde data. Tilføj nøgleordet data, så genererer Kotlin automatisk:
equals()/hashCode()— sammenligning efter værditoString()— læsbart outputcopy()— oprettelse af en ændret kopi
Eksempel på en dataklasse
Dataklasser er særligt nyttige til at repræsentere modelobjekter:
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 object indeholder medlemmer, der hører til selve klassen og ikke til en bestemt instans — omtrent som static i Java.
Tilgå dem via klassens navn: User.create()
Eksempel på et companion object
Brug companion objects 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
}Nedarvning
Kotlin-klasser er som standard final (kan ikke udvides). Markér en klasse som open for at tillade nedarvning.
open class Animal— kan udvidesclass Dog : Animal()— nedarver fra Animaloverride fun sound()— tilsidesætter en funktion fra forældreklassen
Eksempel på nedarvning
Opbyg 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()}")
}Objektdeklarationer
En object-deklaration opretter en singleton — en klasse med præcis én instans, der oprettes, første gang den tilgås.
Brug den til hjælpefunktioner, administratorer eller alt, der kun skal have én instans.
Hurtigt tjek
Hvilken funktion leverer en Kotlin-data class automatisk?
Opsummering: Klasser og objekter
Du har lært Kotlins grundelementer i OOP:
- Klasser med primære konstruktører og medlemsfunktioner
data class— automatisk generering af equals, toString og copycompanion object— medlemmer på klasseniveau (static)open-klasser ogoverridetil nedarvningobject-deklarationer til singletons
Du er klar til at bygge rigtige Android-apps!
Lær Kotlin med en AI-underviser — gratis
Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.
- Kurser
- 36
- Lektioner
- 152
Ofte stillede spørgsmål
Er lektionen “Klasser og objekter” gratis?
Ja — alle 3 lektioner i læringssporet Android Academy, inklusive “Klasser og objekter”, kan læses gratis i deres fulde længde her på webstedet. Derefter låser CoddyKit PRO alle lektioner op samt interaktive øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. Android Academy-kurset indeholder 4 lektioner i alt.
Hvad lærer jeg i “Klasser og objekter”?
Definér klasser med properties og metoder, brug konstruktører, forstå nedarvning og interfaces, og skriv objektorienteret kode på idiomatisk Kotlin. Du øver dig i Android Academy med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.
Skal jeg have erfaring for at begynde på Android Academy?
Der kræves ingen tidligere erfaring. Android Academy på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 2 af 4.
Hvor lang tid tager lektionen “Klasser og objekter”?
De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.
Kan jeg skrive og køre kode i denne Android Academy-lektion?
Ja. Alle Android Academy-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.
Alle lektioner i dette kursus
- Null-sikkerhed
- Klasser og objekter
- Data classes og sealed classes
- Extension functions og higher-order functions