Objektorientētā programmēšana
Objektorientētā programmēšana (OOP) ir datorprogrammu rakstīšanas veids, kurā datu un metožu attēlošanai tiek izmantota "objektu" ideja. Parasti datorprogrammas bija tikai instrukciju saraksts datoram, kas datoram uzdod veikt noteiktas darbības noteiktā veidā, ko sauc par procedurālo programmēšanu. Tomēr objektorientētajā programmēšanā datorprogrammās tiek izmantoti objekti, kas savā starpā sarunājas un maina datus šajos objektos, lai tie darbotos tā, kā vēlas lietotājs. Turklāt objektorientētā programmēšana palīdz izstrādātājam, jo ļauj kodu viegli atkārtoti izmantot citās programmas daļās vai pat citos cilvēkos.
Lielākā daļa programmēšanas valodu ir dažādu datorprogrammu rakstīšanas veidu apvienojums. Piemēram, Python ļauj datorprogrammas rakstīt gan objektorientētas programmēšanas, gan procedurālās programmēšanas veidā. Ir daudzas programmēšanas valodas, kas ļauj rakstīt datorprogrammas OOP, Dažas no šīm programmēšanas valodām ir, piemēram: C++, Java, Ruby, Perl, Emarald, Sapphire, PHP, Python u. c.
Funkcijas
Objektorientētās programmēšanas galvenā ideja ir tāda, ka viss ir objekts. Tomēr objektiem var būt dažādi tipi:
- Mainīgie var saturēt dažādu tipu informāciju (vai datus), ko atbalsta programmēšanas valoda. Piemēram, veselu skaitļu datu tips un sarakstu datu struktūra. Mainīgie ir ideja, kas jau ir pieejama procedurālajās programmēšanas valodās. Objektorientētajā programmēšanā mainīgos lielākoties sauc par atribūtiem.
- Procedūras (pazīstamas arī kā funkcijas, metodes vai rutīnas) ir instrukciju saraksts, kas datoram uzdod pieņemt ievaddatus, veikt aprēķinus vai mainīt datus un atdot rezultātus lietotājam. Procedūras ir arī ideja, kas jau ir pieejama procedurālajās programmēšanas valodās. Objektorientētajā programmēšanā procedūras galvenokārt sauc par metodēm.
- Klases ir dažādu mainīgo un procedūru kopums. Klases parasti sarunājas cita ar citu, lai veiktu izmaiņas datos un darbotos tā, kā lietotājs vēlas.
Objekti ir termins, ko lieto, lai apzīmētu klašu gadījumus.
Piemēri
Turpmākajos piemēros mēs izveidosim klasi ar nosaukumu Human
. Šajā klasē ir atribūti name
(cilvēka vārdam) un friend
(drauga
vārdam). Katra no klases Human
metodēm satur instrukciju sarakstu, kurā izmantoti gan vārda
, gan drauga
atribūti.
Python
Šis kods ir rakstīts Python valodā.
Java
Šis kods ir Java valodā.
Cilvēku klase
Metode sarunai ar iepriekšminēto Cilvēka klasi
Kritika
Lai gan objektorientētā programmēšana ir populāra, ir daudz cilvēku, kas uzskata, ka tā ir slikta, un kritizē to.
- Luka Kardelli (Luca Cardelli) uzrakstīja darbu ar nosaukumu "Objektorientēto valodu sliktās inženiertehniskās īpašības" (Bad Engineering Properties of Object-Oriented Languages).
- Ričards Stallmans 1995. gadā rakstīja: "OOP pievienošana Emacs nav nepārprotams uzlabojums; es izmantoju OOP, strādājot pie Lisp Machine logu sistēmām, un es nepiekrītu ierastajam uzskatam, ka tas ir labāks programmēšanas veids."
- Potok et al. pētījumā teikts, ka produktivitāte starp OOP un procedurālo pieeju atšķiras ļoti maz.
- Kristofers J. Datums (Christopher J. Date) teica, ka OOP salīdzināšana ar citām lietām, jo īpaši tas, kā OOP un otra lieta ir saistītas, ir sarežģīta, jo cilvēki nav vienisprātis par OOP nozīmi.
- Aleksandrs Stepanovs ierosināja, ka OOP sniedz viedokli, kas ir ierobežots, ciktāl matemātika, un nosauca to par "gandrīz tikpat daudz krāpšanu kā mākslīgais intelekts".
- Pols Greiems (Paul Graham), veiksmīgs interneta pārdevējs un programmētājs, ir ierosinājis, ka OOP mērķis ir darboties kā ganāmpulka mehānismam, kas vidējiem programmētājiem vidējās organizācijās neļauj "nodarīt pārāk lielu kaitējumu". Tas arī palēnina ātrākus, labākus programmētājus, kuri zina, kā darīt lietas jaudīgāk un kompaktāk.. [1]
Jautājumi un atbildes
J: Kas ir objektorientēta programmēšana?
A: Objektorientētā programmēšana ir veids, kā rakstīt datorprogrammas, izmantojot "objektus", kas apzīmē datus un metodes.
Q: Ar ko objektorientētā programmēšana atšķiras no procedurālās programmēšanas?
A: Procedurālās programmēšanas gadījumā datorprogrammas ir instrukciju saraksts datoram, kas liek tam veikt noteiktas darbības noteiktā veidā. Objektorientētajā programmēšanā datorprogrammās tiek izmantoti objekti, kas savā starpā sarunājas, lai mainītu šajos objektos esošos datus un darbotos tā, kā lietotājs vēlas.
J: Kādu labumu objektorientētā programmēšana dod izstrādātājiem?
A: Objektorientētā programmēšana ļauj kodu viegli atkārtoti izmantot citās programmas daļās vai pat citos cilvēkos.
J: Ar ko ir pazīstama Python programmēšanas valoda?
A: Python ļauj datorprogrammas rakstīt gan objektorientētas, gan procedurālas programmēšanas režīmā.
J: Vai varat minēt piemērus par programmēšanas valodām, kas ļauj rakstīt datorprogrammas objektorientētā programmēšanā?
A: Programmēšanas valodas, kas ļauj rakstīt datorprogrammas objektorientētā programmēšanā, ir C++, Java, Ruby, Perl, Emarald, Sapphire, PHP, Python, C# utt.
J: Kas ir objekti objektorientētajā programmēšanā?
A: Objekti ir objektorientētās programmēšanas vienības, kas satur datus un metodes.
J: Kā objekti darbojas objektorientētajā programmēšanā?
A: Objekti mijiedarbojas viens ar otru, lai mainītu šajos objektos esošos datus un darbotos tā, kā lietotājs vēlas.