Klasser og egenskaber
Modellér data med klasser.
Klasser og egenskaber 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 og adfærd i én type.
For eksempel kan en klasse Dog beskrive alle hundes navn, alder og den gøen, de laver.
Erklæring af en klasse
Du erklærer en klasse med nøgleordet class og et navn. Klassenavne bruger PascalCase.
En tom klasse er helt gyldig; du kan endda udelade de krøllede parenteser.
class Dog
fun main() {
println("Class declared")
}Oprettelse af et objekt
Et objekt (eller en instans) er en konkret ting, der er bygget ud fra en klasse. I Kotlin opretter du et ved at kalde klassens navn som en funktion.
Bemærk, at der ikke findes noget nøgleord new.
class Dog
fun main() {
val rex = Dog()
println(rex)
}Egenskaber
En egenskab er en variabel, der tilhører en klasse. Erklær den inde i klassens krop med val eller var.
Brug val til værdier, der aldrig ændres, og var til værdier, der kan ændres.
class Dog {
var name: String = "Rex"
var age: Int = 3
}
fun main() {
val d = Dog()
println(d.name)
}Adgang til egenskaber
Brug punktnotation til at læse eller ændre en egenskab: object.property.
Da name er en var, kan vi tildele den en ny værdi.
class Dog {
var name: String = "Rex"
}
fun main() {
val d = Dog()
d.name = "Buddy"
println(d.name)
}Egenskaber med val kontra var
En egenskab med val er skrivebeskyttet, efter den er angivet. Hvis du forsøger at tildele den en ny værdi, opstår der en kompileringsfejl.
En egenskab med var kan tildeles en ny værdi så mange gange, du vil.
class Circle {
val pi = 3.14
var radius = 1.0
}
fun main() {
val c = Circle()
c.radius = 5.0
println(c.radius)
}Metoder
En funktion, der er erklæret inde i en klasse, kaldes en metode. Metoder kan bruge klassens egenskaber direkte.
Her bruger bark egenskaben name.
class Dog {
var name: String = "Rex"
fun bark() {
println(name + " says Woof!")
}
}
fun main() {
Dog().bark()
}Flere objekter
Hvert objekt har sin egen kopi af egenskaberne. Hvis du ændrer ét objekt, påvirker det ikke et andet.
Her har a og b separate navne.
class Dog {
var name: String = ""
}
fun main() {
val a = Dog()
val b = Dog()
a.name = "Rex"
b.name = "Max"
println(a.name + " " + b.name)
}Standardværdier for egenskaber
Alle egenskaber skal have en værdi. Du kan angive en fornuftig standardværdi, når du erklærer egenskaben.
På den måde starter et nyt objekt i en kendt tilstand i stedet for at være udefineret.
class Counter {
var count: Int = 0
fun increment() {
count = count + 1
}
}
fun main() {
val c = Counter()
c.increment()
println(c.count)
}Kombination af egenskaber og metoder
En klasse er mest nyttig, når egenskaber og metoder arbejder sammen. En metode kan læse og opdatere objektets egne egenskaber.
Her øger haveBirthday egenskaben age, hver gang den kaldes.
class Dog {
var name: String = "Rex"
var age: Int = 1
fun haveBirthday() {
age = age + 1
}
}
fun main() {
val d = Dog()
d.haveBirthday()
println(d.age)
}Klasser modellerer virkelige ting
Klasser lader dig modellere idéer fra den virkelige verden i kode.
- Egenskaber beskriver, hvad noget har.
- Metoder beskriver, hvad det kan gøre.
I Android er skærme, knapper og viewmodeller alle bygget ud fra klasser.
Hurtigt tjek
Test din forståelse af klasser og egenskaber.
Opsummering
Du har lært, at en klasse er en skabelon, og at et objekt er en oprettet instans.
Egenskaber gemmer data med val eller var, metoder tilføjer funktionalitet, og punktnotation giver adgang til dem. Nu skal du opsætte egenskaber på en ryddelig måde ved hjælp af konstruktører.
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 egenskaber” gratis?
Ja — alle 3 lektioner i læringssporet Android Academy, inklusive “Klasser og egenskaber”, 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 egenskaber”?
Modellér data med klasser. 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 egenskaber”?
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
- Deklarér funktioner
- Klasser og egenskaber
- Konstruktører og init
- Dataklasser