Kotlin klasse og objekter (med eksempler)

I denne artikel introduceres du til objektorienteret programmering i Kotlin. Du lærer, hvad en klasse er, hvordan du opretter objekter og bruger det i dit program.

Kotlin understøtter både funktionel og objektorienteret programmering.

Kotlin understøtter funktioner såsom funktioner i højere ordre, funktionstyper og lambdas, hvilket gør det til et godt valg til at arbejde i funktionel programmeringsstil. Du vil lære om dette koncept i senere kapitler. Denne artikel vil fokusere på objektorienteret programmering i Kotlin.

Objektorienteret programmering (OOP)

I objektorienteret programmering kan du opdele et komplekst problem i mindre sæt ved at oprette objekter.

Disse objekter har to karakteristika:

  • stat
  • opførsel

Lad os tage nogle eksempler:

  1. Lampe er et objekt
    • Det kan være i tændt eller slukket tilstand.
    • Du kan turn onog turn offlampe (adfærd).
  2. Cykel er et objekt
    • Den har nuværende gear, to hjul, antal gear osv. Stater.
    • Det har bremsning, acceleration, gearskift osv. Adfærd.

Du vil lære om detaljerede funktioner i en objektorienteret programmering som: datakapsling, arv og polymorfisme, mens vi fortsætter. Denne artikel vil fokusere på det grundlæggende for at holde tingene enkle.

Anbefalet læsning: Hvad er et objekt?

Kotlin klasse

Før du opretter objekter i Kotlin, skal du definere en klasse.

En klasse er en plan for objektet.

Vi kan tænke på klassen som en skitse (prototype) af et hus. Den indeholder alle detaljer om gulve, døre, vinduer osv. Baseret på disse beskrivelser bygger vi huset. Huset er objektet.

Da mange huse kan laves ud fra den samme beskrivelse, kan vi oprette mange objekter fra en klasse.

Hvordan defineres en klasse i Kotlin?

For at definere en klasse i Kotlin classbruges nøgleord:

 klasse ClassName (// egenskab // medlemsfunktion …) 

Her er et eksempel:

 klasse Lampe (// egenskab (data-medlem) privat var isOn: Boolsk = falsk // medlemsfunktion sjov turnOn () (isOn = sand) // medlemsfunktion sjov turnOff () (isOn = falsk))

Her definerede vi en klasse ved navn Lamp.

Klassen har en egenskab isOn (defineret på samme måde som variabel) og to medlemsfunktioner turnOn()og turnOff().

Anbefalet læsning: Kotlin-funktioner

I Kotlin skal enten ejendommen initialiseres eller erklæres abstract( besøg: Kotlin Abstract Class for at lære mere). I ovenstående eksempel initialiseres isOn egenskab til false.

Klasser, objekter, egenskaber, medlemsfunktion osv. Kan have synlighedsændringer. For eksempel er isOn-ejendommen privat. Dette betyder, at egenskaben isOn kun kan ændres fra inde i lampeklassen.

Andre synlighedsmodifikatorer er:

  • private - kun synlig (kan tilgås) inde fra klassen.
  • public - synlig overalt.
  • protected - synlig for klassen og dens underklasse.
  • internal - enhver klient inde i modulet kan få adgang til dem.

Du lærer om protectedog internalændrer senere i artiklen om synlighedsændringer i Kotlin.

Hvis du ikke angiver synlighedsmodifikatoren, er det publicsom standard.

I ovenstående program, turnOn()og turnOff()medlem funktioner er publicmens, Ison ejendom er privat.

Kotlin Objekter

Når klasse er defineret, defineres kun specifikationen for objektet; ingen hukommelse eller lager er allokeret.

For at få adgang til medlemmer, der er defineret i klassen, skal du oprette objekter. Lad os oprette objekter i lampeklassen.

 class Lamp ( // property (data member) private var isOn: Boolean = false // member function fun turnOn() ( isOn = true ) // member function fun turnOff() ( isOn = false ) ) fun main(args: Array) ( val l1 = Lamp() // create l1 object of Lamp class val l2 = Lamp() // create l2 object of Lamp class )

Dette program opretter to objekter l1 og l2 i klasse Lamp. Egenskaben isOn for både lamper l1 og l2 vil være false.

Hvordan får man adgang til medlemmer?

Du kan få adgang til egenskaber og medlemsfunktioner i en klasse ved hjælp af .notation. For eksempel,

 l1.turnOn ()

Denne erklæring kalder turnOn () -funktionen for l1-objektet.

Lad os tage et andet eksempel:

 l2.isOn = sandt

Here, we tried to assign true to isOn property of l2 object. Note that, isOn property is private, and if you try to access isOn from outside the class, an exception is thrown.

Example: Kotlin Class and Object

 class Lamp ( // property (data member) private var isOn: Boolean = false // member function fun turnOn() ( isOn = true ) // member function fun turnOff() ( isOn = false ) fun displayLightStatus(lamp: String) ( if (isOn == true) println("$lamp lamp is on.") else println("$lamp lamp is off.") ) ) fun main(args: Array) ( val l1 = Lamp() // create l1 object of Lamp class val l2 = Lamp() // create l2 object of Lamp class l1.turnOn() l2.turnOff() l1.displayLightStatus("l1") l2.displayLightStatus("l2") )

When you run the program, the output will be:

 l1 Lamp is on. l2 Lamp is off.

In the above program,

  • Lamp class is created.
  • The class has a property isOn and three member functions turnOn(), turnOff() and displayLightStatus().
  • Two objects l1 and l2 of Lamp class are created in the main() function.
  • Here, turnOn() function is called using l1 object: l1.turnOn(). This method sets isOn instance variable of l1 object to true.
  • And, turnOff() function is called using l2 object: l1.turnOff(). This method sets isOff instance variable of l2 object to false.
  • Derefter displayLightStatus()kaldes funktion til l1- og l2-objekter, der udskriver passende meddelelse afhængigt af om isOn-egenskaben er sand eller false.

Bemærk at egenskaben isOn initialiseres til falseinde i klassen. Når et objekt i klassen oprettes, initialiseres isOn-egenskaben for objektet til falseautomatisk. Så det er ikke nødvendigt for l2-objekt at kalde for turnOff()at indstille isOn-ejendom til false.

For eksempel:

 class Lamp ( // property (data member) private var isOn: Boolean = false // member function fun turnOn() ( isOn = true ) // member function fun turnOff() ( isOn = false ) fun displayLightStatus() ( if (isOn == true) println("lamp is on.") else println("lamp is off.") ) ) fun main(args: Array) ( val lamp = Lamp() lamp.displayLightStatus() ) 

Når du kører programmet, vil output være:

 lampen er slukket.

Denne artikel er kun en introduktion til objektorienteret programmering i Kotlin. Se disse kapitler i rækkefølge for at lære mere:

  • Kotlin konstruktører og initialiserere
  • Kotlin dette nøgleord
  • Kotlin nestet klasse

Interessante artikler...