Kotlinova trieda a objekty (s príkladmi)

V tomto článku vám predstavíme objektovo orientované programovanie v Kotline. Dozviete sa, čo je to trieda, ako vytvárať objekty a používať ich vo svojom programe.

Kotlin podporuje funkčné aj objektovo orientované programovanie.

Kotlin podporuje funkcie, ako sú funkcie vyššieho rádu, typy funkcií a lambdas, čo z neho robí skvelú voľbu pre prácu vo funkčnom štýle programovania. O týchto koncepciách sa dozviete v ďalších kapitolách. Tento článok sa zameria na objektovo orientovaný štýl programovania v Kotline.

Objektovo orientované programovanie (OOP)

V objektovo orientovanom štýle programovania môžete zložitým problémom rozdeliť vytváranie objektov na menšie množiny.

Tieto objekty zdieľajú dve charakteristiky:

  • štát
  • správanie

Zoberme si niekoľko príkladov:

  1. Lampa je predmet
    • Môže byť v zapnutom alebo vypnutom stave.
    • Môžete turn ona turn offlampa (správanie).
  2. Bicykel je predmetom
    • Má aktuálny prevodový stupeň, dve kolesá, počet prevodových stupňov atď.
    • Má správanie pri brzdení, akcelerácii, zmene prevodového stupňa atď.

Dozviete sa ďalšie podrobnosti o objektovo orientovanom programovaní, ako sú: zapuzdrovanie dát, dedičnosť a polymorfizmus. Tento článok sa zameria na základné veci, ktoré majú zjednodušiť prácu.

Odporúčame prečítať: Čo je to predmet?

Kotlinova trieda

Predtým, ako vytvoríte objekty v Kotline, musíte definovať triedu.

Trieda je návrhom objektu.

Triedu si môžeme predstaviť ako náčrt (prototyp) domu. Obsahuje všetky podrobnosti o podlahách, dverách, oknách atď. Na základe týchto popisov staviame dom. Dom je objekt.

Pretože z rovnakého popisu je možné vyrobiť mnoho domov, môžeme z triedy vytvoriť veľa objektov.

Ako definovať triedu v Kotline?

Na definovanie triedy v Kotline classsa používa kľúčové slovo:

 trieda ClassName (// vlastnosť // členská funkcia …) 

Tu je príklad:

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

Tu sme definovali triedu s názvom Lampa.

Trieda má jednu vlastnosť isOn (definovanú rovnako ako premenná) a dve členské funkcie turnOn()a turnOff().

Odporúčame prečítať : Kotlinove funkcie

V Kotline musí byť vlastnosť inicializovaná alebo musí byť deklarovaná abstract(ďalšie informácie nájdete na webovej stránke : Kotlin Abstract Class). Vo vyššie uvedenom príklade je vlastnosť isOn inicializovaná na false.

Triedy, objekty, vlastnosti, členské funkcie atď. Môžu mať modifikátory viditeľnosti. Napríklad vlastnosť isOn je súkromná. To znamená, že vlastnosť isOn je možné zmeniť iba z triedy Lamp.

Ďalšie modifikátory viditeľnosti sú:

  • private - viditeľné (prístupné) iba z vnútra triedy.
  • public - viditeľné všade.
  • protected - viditeľné pre triedu a jej podtriedu.
  • internal - má k nim prístup ktorýkoľvek klient vo vnútri modulu.

Dozviete sa o protecteda internalmodifikátory neskôr Kotlin modifikátory viditeľnosti článku.

Ak neurčíte modifikátor viditeľnosti, bude to publicpredvolene.

Vo vyššie uvedenom programe, turnOn()a turnOff()funkcie členov sú publicvzhľadom k tomu, nehnuteľnosť Ison je súkromný.

Kotlinove objekty

Keď je definovaná trieda, je definovaná iba špecifikácia pre objekt; nie je pridelená žiadna pamäť alebo úložisko.

Pre prístup k členom definovaným v rámci triedy musíte vytvoriť objekty. Vytvorme objekty triedy Lampa.

 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 )

Tento program vytvorí dva objekty l1 a l2 triedy Lamp. Vlastnosť isOn pre obidve žiarovky l1 a l2 bude false.

Ako získať prístup k členom?

K vlastnostiam a členským funkciám triedy môžete pristupovať pomocou .notácie. Napríklad,

 l1.turnOn ()

Toto vyhlásenie volá funkciu turnOn () pre objekt l1.

Zoberme si ďalší príklad:

 l2.isOn = true

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.
  • Potom displayLightStatus()sa volá funkcia pre objekty l1 a l2, ktorá vytlačí príslušné správy podľa toho, či je vlastnosť isOn true alebo false.

Všimnite si, že vlastnosť isOn je inicializovaná do falsevnútra triedy. Keď sa vytvorí objekt triedy, falseautomaticky sa inicializuje vlastnosť isOn pre objekt . Nie je teda potrebné, aby l2 objekt volal, turnOff()aby nastavil vlastnosť isOn na false.

Napríklad:

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

Po spustení programu bude výstup:

 lampa nesvieti.

Tento článok je iba úvodom do objektovo orientovaného programovania v Kotline. Ak sa chcete dozvedieť viac, pozrite si postupne tieto kapitoly.

  • Konštruktory a inicializátory Kotlin
  • Kotlin toto kľúčové slovo
  • Vnorená trieda Kotlin

Zaujímavé články...