Kotlin-klasse og gjenstander (med eksempler)

I denne artikkelen vil du bli introdusert for objektorientert programmering i Kotlin. Du lærer hva en klasse er, hvordan du lager objekter og bruker den i programmet ditt.

Kotlin støtter både funksjonell og objektorientert programmering.

Kotlin støtter funksjoner som høyere ordensfunksjoner, funksjonstyper og lambdas, noe som gjør det til et godt valg for å jobbe i funksjonell programmeringsstil. Du vil lære om dette konseptet i senere kapitler. Denne artikkelen vil fokusere på objektorientert programmeringsstil i Kotlin.

Objektorientert programmering (OOP)

I objektorientert programmeringsstil kan du dele et komplekst problem i mindre sett ved å lage objekter.

Disse objektene har to kjennetegn:

  • stat
  • oppførsel

La oss ta noen eksempler:

  1. Lampe er et objekt
    • Det kan være i på eller av tilstand.
    • Du kan turn onog turn offlampe (oppførsel).
  2. Sykkel er et objekt
    • Den har nåværende gir, to hjul, antall gir etc. stater.
    • Den har bremsing, akselerasjon, girskifte etc. oppførsel.

Du vil lære om detaljfunksjoner i en objektorientert programmering som: datakapsling, arv og polymorfisme mens vi fortsetter. Denne artikkelen vil fokusere på det grunnleggende for å holde ting enkelt.

Anbefalt lesing: Hva er et objekt?

Kotlin-klasse

Før du oppretter objekter i Kotlin, må du definere en klasse.

En klasse er en blåkopi for objektet.

Vi kan tenke på klassen som en skisse (prototype) av et hus. Den inneholder alle detaljene om gulv, dører, vinduer etc. Basert på disse beskrivelsene bygger vi huset. Huset er objektet.

Siden mange hus kan lages fra samme beskrivelse, kan vi lage mange gjenstander fra en klasse.

Hvordan definere en klasse i Kotlin?

For å definere en klasse i Kotlin, brukes classnøkkelord:

 class ClassName (// eiendom // medlemsfunksjon …) 

Her er et eksempel:

 class Lamp (// property (data member) private var isOn: Boolean = false // medlemsfunksjon fun turnOn () (isOn = true) // medlemsfunksjon fun turnOff () (isOn = false))

Her definerte vi en klasse som heter Lamp.

Klassen har en egenskap isOn (definert på samme måte som variabel), og to medlemsfunksjoner turnOn()og turnOff().

Anbefalt lesing: Kotlin-funksjoner

I Kotlin må enten eiendommen initialiseres eller deklareres abstract( besøk: Kotlin Abstract Class for å lære mer). I eksemplet ovenfor initialiseres isOn-egenskapen til false.

Klasser, objekter, egenskaper, medlemsfunksjon etc. kan ha synlighetsendringer. For eksempel er isOn-eiendommen privat. Dette betyr at egenskapen isOn bare kan endres fra lampeklassen.

Andre siktmodifikatorer er:

  • private - kun synlig (kan nås) fra innsiden av klassen.
  • public - synlig overalt.
  • protected - synlig for klassen og dens underklasse.
  • internal - enhver klient i modulen kan få tilgang til dem.

Du vil lære om protectedog internalmodifisere senere i artikkelen om Kotlin synlighetsmodifikatorer.

Hvis du ikke spesifiserer synlighetsmodifisereren, vil det være publicsom standard.

I det ovennevnte programmet, turnOn()og turnOff()medlemsfunksjonene er, publicmens isOn eiendom er privat.

Kotlin Objects

Når klasse er definert, er bare spesifikasjonen for objektet definert; det er ikke tildelt noe minne eller lagringsplass.

For å få tilgang til medlemmer som er definert i klassen, må du opprette objekter. La oss lage 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 programmet lager to objekter l1 og l2 i klasse Lamp. IsOn-egenskapen for både lampene l1 og l2 vil være false.

Hvordan få tilgang til medlemmer?

Du kan få tilgang til egenskaper og medlemsfunksjoner i en klasse ved å bruke .notasjon. For eksempel,

 l1.turnOn ()

Denne uttalelsen kaller turnOn () -funksjon for l1-objekt.

La oss ta et annet eksempel:

 l2.isOn = sant

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.
  • Deretter displayLightStatus()kalles funksjon for l1 og l2 objekter som skriver ut passende melding avhengig av om isOn-egenskapen er sant eller false.

Legg merke til at egenskapen isOn initialiseres til falseinne i klassen. Når et objekt i klassen opprettes, initialiseres isOn-egenskapen for objektet til falseautomatisk. Så det er ikke nødvendig for l2-objektet å ringe for turnOff()å angi isOn-egenskap 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 kjører programmet, vil utdataene være:

 lampen er av.

Denne artikkelen er bare en introduksjon til objektorientert programmering i Kotlin. Sjekk disse kapitlene i rekkefølge for å lære mer:

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

Interessante artikler...