Objektno usmerjeno programiranje
Objektno usmerjeno programiranje (OOP) je način pisanja računalniških programov, ki za predstavitev podatkov in metod uporablja idejo "objektov". Običajno so bili računalniški programi le seznam navodil za računalnik, ki so mu ukazovala, naj naredi določene stvari na določen način, kar se imenuje proceduralno programiranje. Pri objektno usmerjenem programiranju pa računalniški programi uporabljajo objekte, ki se med seboj pogovarjajo, in spreminjajo podatke v teh objektih, da delujejo na način, ki ga želi uporabnik. Zaradi načina oblikovanja objektno usmerjenega programiranja je programerju v pomoč tudi tako, da omogoča enostavno ponovno uporabo kode v drugih delih programa ali celo pri drugih ljudeh.
Večina programskih jezikov je mešanica različnih vrst načinov pisanja računalniških programov. Python na primer omogoča pisanje računalniških programov tako v objektno usmerjenem kot v proceduralnem programiranju. Obstaja veliko programskih jezikov, ki omogočajo pisanje računalniških programov v OOP, Nekateri od teh programskih jezikov so npr: C++, Java, Ruby, Perl, Emarald, Sapphire, PHP, Python itd.
Značilnosti
Glavna ideja objektno usmerjenega programiranja je, da je vse objekt. Vendar so lahko objekti različnih vrst:
- Spremenljivke lahko vsebujejo informacije (ali podatke) različnih vrst, ki jih podpira programski jezik. Primera sta celoštevilska podatkovna vrsta in podatkovna struktura seznamov. Spremenljivke so zamisel, ki je na voljo že v proceduralnih programskih jezikih. V objektno usmerjenem programiranju so spremenljivke znane predvsem kot atributi.
- Postopki (znani tudi kot funkcije, metode ali rutine) so seznam navodil, ki računalniku narekujejo, da sprejme vhodne podatke, opravi nekaj izračunov ali spremeni podatke ter uporabniku vrne izhodne podatke. Postopki so tudi zamisel, ki je že na voljo v proceduralnih programskih jezikih. V objektno usmerjenem programiranju so postopki večinoma znani kot metode.
- Razredi so zbirka različnih spremenljivk in postopkov. Razredi se običajno pogovarjajo med seboj in spreminjajo podatke, da bi delovali na način, ki ga želi uporabnik.
Objekti je izraz, ki se uporablja za primere razredov.
Primeri
V spodnjih primerih ustvarimo razred z imenom Človek
. Ta razred vsebuje atributa name
(za ime osebe) in friend
(za ime prijatelja). Vsaka od metod v razredu Človek
vsebuje seznam navodil, ki uporablja atributa ime
in prijatelj.
Python
Ta koda je v jeziku Python.
Java
Ta koda je v jeziku Java.
Razred Človek
Metoda za pogovor z zgornjim razredom Človek
Kritika
Čeprav je objektno usmerjeno programiranje priljubljeno, je veliko ljudi, ki menijo, da je slabo, in ga kritizirajo.
- Luca Cardelli je napisal članek z naslovom "Bad Engineering Properties of Object-Oriented Languages".
- Richard Stallman je leta 1995 zapisal: "Dodajanje OOP v Emacs očitno ni izboljšava; OOP sem uporabljal pri delu z okenskimi sistemi Lisp Machine in se ne strinjam z običajnim mnenjem, da je to boljši način programiranja."
- Študija, ki so jo opravili Potok in drugi, pravi, da je razlika v produktivnosti med OOP in proceduralnimi pristopi zelo majhna.
- Christopher J. Date je dejal, da je primerjava OOP z drugimi stvarmi, zlasti kako sta OOP in druga stvar povezana, težka, ker se ljudje ne strinjajo o pomenu OOP.
- Alexander Stepanov je predlagal, da OOP daje stališče, ki je omejeno na matematiko, in ga označil za "skoraj tako veliko prevaro kot umetno inteligenco".
- Paul Graham, uspešen internetni prodajalec in programer, je menil, da je namen OOP delovati kot mehanizem, ki povprečnim programerjem v povprečnih organizacijah preprečuje, da bi "naredili preveč škode". To tudi upočasnjuje hitrejše in boljše programerje, ki vedo, kako narediti stvari na zmogljivejši in kompaktnejši način. [1]
Vprašanja in odgovori
V: Kaj je objektno usmerjeno programiranje?
O: Objektno usmerjeno programiranje je način pisanja računalniških programov, ki uporablja "objekte" za označevanje podatkov in metod.
V: Kako se objektno usmerjeno programiranje razlikuje od proceduralnega?
O: Pri proceduralnem programiranju so računalniški programi seznam navodil za računalnik, ki mu narekujejo, naj naredi določene stvari na določen način. Pri objektno usmerjenem programiranju računalniški programi uporabljajo predmete, ki se med seboj pogovarjajo, da spremenijo podatke v teh predmetih in delujejo na način, ki ga želi uporabnik.
V: Kako objektno usmerjeno programiranje koristi razvijalcem?
O: Objektno usmerjeno programiranje omogoča, da se koda zlahka ponovno uporabi v drugih delih programa ali celo pri drugih ljudeh.
V: Po čem je znan programski jezik Python?
O: Jezik Python omogoča pisanje računalniških programov tako v objektno usmerjenem kot v proceduralnem programiranju.
V: Ali lahko navedete primere programskih jezikov, ki omogočajo pisanje računalniških programov v objektno usmerjenem programiranju?
O: Programski jeziki, ki omogočajo pisanje računalniških programov v objektno usmerjenem programiranju, so C++, Java, Ruby, Perl, Emarald, Sapphire, PHP, Python, C# itd.
V: Kaj so objekti v objektno usmerjenem programiranju?
O: Objekti so entitete v objektno usmerjenem programiranju, ki vsebujejo podatke in metode.
V: Kako delujejo objekti v objektno usmerjenem programiranju?
O: Objekti medsebojno sodelujejo, da spremenijo podatke v teh objektih in delujejo na način, ki ga želi uporabnik.