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.

razred Human(object): def __init__(self, name, friend=None): self. name = name self. friend = friend def say_name(self): print("Moje ime je "+self. name) def say_goodnight(self): if self. friend is None: print("Good night nihče.") else: print("Good night "+self. friend. ime) # Ustvari nov človeški objekt z imenom Stephen in imenom "Stephen" stephen = Human("Stephen") # Ustvari nov človeški objekt z imenom joe in imenom "Joe", ki ima za prijatelja stephena joe = Human("Joe", stephen) stephen. say_name() # Pokaže "Moje ime je Stephen" stephen. say_goodnight() # Pokaže "Lahko noč nikomur." joe. say_name() # Pokaže "Moje ime je Joe" joe. say_goodnight() # Pokaže "Lahko noč Stephen

Java

Ta koda je v jeziku Java.

Razred Človek

class Human { private String name = "unnamed"; // ime tega človeka private Human friend = null; // človekov prijatelj // Ta metoda ustvari nov objekt Human, ko mu podamo ime in prijatelja public Human(String name, Human friend) { this. name = name; this. friend = friend; }      // Ta metoda ustvari tudi nov objekt Človeka, če je podano samo ime public Human(String name) { this. name = name; this. friend = null; }      // Ta metoda ustvari nov objekt Človek, če mu nista podana ime in prijatelj. public Human() { this. name = "brez imena"; this. friend = null; } public void sayName() { System. out. println("Moje ime je " + this. name); } public void sayGoodnight() { if (friend == null) { System. out. println("Lahko noč nikomur."); } else { System. out. println("Lahko noč " + friend. name); }     } }

Metoda za pogovor z zgornjim razredom Človek

class Main { public static void main(String[] args) { // Ustvari nov človeški objekt stephen z imenom "Stephen" Human stephen = new Human("Stephen"); // Ustvari nov človeški objekt joe z imenom "Joe" in stephenom kot prijateljem Human joe = new Human("Joe", stephen); stephen. sayName(); // Pokaže "Moje ime je Stephen" stephen. sayGoodnight(); // Pokaže "Lahko noč, nihče." joe. sayName(); // Pokaže "Moje ime je Joe" joe. sayGoodnight(); // Pokaže "Lahko noč, Stephen" } }

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.

AlegsaOnline.com - 2020 / 2023 - License CC3