Selles artiklis tutvustatakse objektil põhinevat programmeerimist Kotlinis. Saate teada, mis on klass, kuidas objekte luua ja seda oma programmis kasutada.
Kotlin toetab nii funktsionaalset kui ka objektorienteeritud programmeerimist.
Kotlin toetab selliseid funktsioone nagu kõrgemat järku funktsioonid, funktsioonide tüübid ja lambdas, mis teeb sellest suurepärase valiku funktsionaalses programmeerimisstiilis töötamiseks. Selle kontseptsiooni kohta saate teada järgmistest peatükkidest. See artikkel keskendub Kotlini objektorienteeritud programmeerimisstiilile.
Objektorienteeritud programmeerimine (OOP)
Objektorienteeritud programmeerimisstiilis saate objektide loomisega keerulise probleemi jagada väiksemateks komplektideks.
Nendel objektidel on kaks omadust:
- riik
- käitumine
Võtame mõned näited:
- Lamp on objekt
- See võib olla sisse- või väljalülitatud olekus.
- Saate
turn on
jaturn off
lamp (käitumine).
- Jalgratas on objekt
- Sellel on praegune käik, kaks ratast, käikude arv jne.
- Sellel on pidurdamine, kiirendamine, käiguvahetus jne.
Saate teada objektipõhise programmeerimise üksikasjalike funktsioonide kohta, nagu: andmete kapseldamine, pärimine ja polümorfism, kui me jätkame. Selles artiklis keskendutakse põhitõdedele, et asjad oleksid lihtsad.
Soovitatav lugemine: mis on objekt?
Kotlini klass
Enne Kotlinis objektide loomist peate määratlema klassi.
Klass on objekti kavand.
Klassist võime mõelda kui maja visandist (prototüübist). See sisaldab kõiki üksikasju põrandate, uste, akende jms kohta. Nende kirjelduste põhjal ehitame maja. Maja on objekt.
Kuna samast kirjeldusest saab teha palju maju, saame klassist luua palju esemeid.
Kuidas määratleda klassi Kotlinis?
Kotlini klassi määratlemiseks class
kasutatakse märksõna:
class ClassName (// omadus // liikme funktsioon …)
Siin on näide:
klassi lamp (// vara (andmeliige) privaatne var isOn: Boolean = false // liikme funktsioon fun turnOn () (isOn = true) // liikme funktsioon fun turnOff () (isOn = false))
Siin määratlesime klassi nimega Lamp.
Klassil on üks omadus isOn (määratletud samamoodi nagu muutuja) ja kaks liikme funktsiooni turnOn()
ja turnOff()
.
Soovitatav lugemine: Kotlini funktsioonid
Kotlinis tuleb kinnisvara kas lähtestada või see deklareerida abstract
( lisateabe saamiseks külastage Kotlini abstraktset klassi). Ülaltoodud näites lähtestatakse atribuudi isOn väärtuseks false
.
Klassidel, objektidel, omadustel, liikme funktsioonidel jne võivad olla nähtavuse modifikaatorid. Näiteks isOn kinnisvara on privaatne. See tähendab, et atribuuti isOn saab muuta ainult klassi Lamp seestpoolt.
Muud nähtavuse muutjad on:
private
- nähtav (juurdepääsetav) ainult klassi seest.public
- nähtav kõikjal.protected
- klassile ja selle alaklassile nähtav.internal
- neile pääseb juurde iga mooduli sees olev klient.
Teist protected
ja internal
modifikaatoritest saate teada hiljem Kotlini nähtavuse modifitseerijate artiklist.
Kui te ei määra nähtavuse teisendajat, on see public
vaikimisi.
Ülaltoodud programmis turnOn()
ja turnOff()
liikmete funktsioonid on public
isOn vara privaatne.
Kotlini objektid
Kui klass on määratletud, on määratletud ainult objekti spetsifikatsioon; mälu ega salvestusruumi pole eraldatud.
Klassis määratletud liikmetele juurdepääsu saamiseks peate looma objekte. Loome Lamp klassi objekte.
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 )
See programm loob klassi Lamp kaks objekti l1 ja l2. Mõlema laterna l1 ja l2 omadus isOn on false
.
Kuidas liikmetele juurde pääseda?
Kursuse omadustele ja liikme funktsioonidele pääsete juurde .
märkmete abil. Näiteks,
l1.turnOn ()
See lause kutsub objekti l1 funktsiooni turnOn ().
Võtame veel ühe näite:
l2.isOn = tõene
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()
anddisplayLightStatus()
. - 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 totrue
. - And,
turnOff()
function is called using l2 object:l1.turnOff()
. This method sets isOff instance variable of l2 object tofalse
. - Seejärel
displayLightStatus()
kutsutakse objektide l1 ja l2 funktsioon, mis prindib sobiva teate sõltuvalt sellest, kas atribuut isOn on tõene võifalse
.
Pange tähele, et atribuut isOn lähtestatakse false
klassi sees. Klassi objekti loomisel lähtestatakse objekti isOn omadus false
automaatselt. Nii et pole vaja, et l2 objekt turnOff()
helistaks atribuudi isOn väärtuseks false
.
Näiteks:
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() )
Programmi käivitamisel on väljund järgmine:
lamp on välja lülitatud.
See artikkel on lihtsalt sissejuhatus objektipõhisele programmeerimisele Kotlinis. Lisateabe saamiseks kontrollige neid peatükke järjestikku:
- Kotlini konstruktorid ja initsialiseerijad
- Kotlin seda märksõna
- Kotlini pesastatud klass