Programimi i orientuar në objekte: Dallime mes rishikimesh

[redaktim i pashqyrtuar][redaktim i pashqyrtuar]
Content deleted Content added
No edit summary
v Roboti: Duke korrigjuar ridrejtimet
Rreshti 1:
'''Programimi i orientuar në objekte''' ose shkurtimisht '''POO''' ([[gjuha angleze|ang.]] ''Object-oriented programming'' ose shkurtimisht ''OOP'') është një [[Paradigma programore|paradigmë programore]] e cila e shfrytëzon konceptin e objektit si dhe ndërveprimeve e tija për të dizajnuar programe kompjuterike. Në këtë paradigmë programore përfshihen tipare të ndryshme si kapsulimi (ang. ''encapsulation''), modulariteti (ang. ''modulariteti''), polimorfizmi (ang. ''polymorphism''), dhe trashëgimi (ang. ''inheritance''). Popullariteti i kësaj paradigme pa rritjen e tij të parë tek në fillim të viteve 1990, mirëpo në ditën e sotme shumica e [[Gjuhë programimi|gjuhëve programuese]] e përkrahin këtë paradigmë.
 
== Përmbledhje ==
Rreshti 13:
Si pasojë e ndikimit nga gjuha programuese [[C++]], programi i orientuar në objekte arriti që të bëhej metodologjia dominante programuese gjatë mesit të viteve 1990-ta<ref>{{ cite web | first= John | last= K Waters | url= http://www.theregister.co.uk/2008/03/07/stroustrup_sutter_super_session/ | title= Stroustrup and Sutter: C++ to run and run | date= 2008-03-17 | accessdate= 2009-01-25 | publisher= [[The Register]], Situation Publishing Ltd.}} - {{en}}</ref>. Më pas, dominimi i POO-së u fuqizua edhe më shumë pasi që ishte shumë i përshtatshëm për zhvillimin e [[GUI|interfejsëve grafik për shfrytëzues]] që ishin duke përjetuar rritje të popullaritetit.
 
Më vitin 1995 shfaqet gjuha programuese [[Java (gjuhë programimi)|Java]]<ref>{{cite web | title= The History of Java Technology | url= http://java.com/en/javahistory/ | year= 2008-04-14 | accessdate= 2009-01-26 | publisher=[[Sun Microsystems]], Inc.}} - {{en}}</ref> e cila ka sintaksë të derivuar nga gjuhët programuese [[C (gjuhë programimi)|C]] dhe [[C++]], mirëpo vetia kryesore që e dallon nga këto është [[JVMjava Virtual Machine|makina virtuale e saj]]. Java si një gjuhë e cila plotësisht e përkrah POO-në, me anë të makinës virtuale që i ofron veti [[Ndër-platformik|ndër-platformike]] arriti që edhe më tej ta fuqizonte dhe në të njëjtën kohë të zgjeronte dominancën e programimit të orientuar në objekte.
 
Rishtazi ka sipërfaqësuar një numër i gjuhëve programuese që edhe pse janë të orientuara në objekte ato përkrahin edhe metodologjinë procedurale, si p.sh. [[Python]] ose [[Ruby]]. Në përjashtim të Java, gjuhë tjera që kanë sipërfaqësuar rishtazi, dhe kanë rëndësi për botën komerciale janë [[Visual Basic .NET]] (VB.NET) dhe [[C Sharp (gjuhë programimi)|C#]] ku të dyja janë të dizajnuara për platformën [[.NET]] të [[Microsoft]]. Duhet veçuar që VB.NET dhe C# përkrahin trashëgimin ndër-gjuhësor, ku kjo e bën të mundshme që p.sh. klasat e definuar në VB.NET të trashëgohen në C# dhe anasjelltas.
Rreshti 26:
; Trashëgimi : Nënklasat paraqesin versione të veçanta të klasave, ku këto i ''trashëgojnë'' tiparet dhe sjelljet nga klasat e tyre prindërore. Nënklasat mund të përmbajnë tipare dhe sjellje shtesë, përsipër atyre që i kanë trashëguar nga klasat prindërore. Për shembull, klasa <code>Qeni</code> mundet ti ketë nënklasat <code>PitBull</code>, <code>Doberman<code>, etj. ku objekti <code>Aresi</code> do t'ishte instancë e nënklasës <code>PitBull</code>. Nëse në klasën <code>Qeni</code> e kemi të definuar metodën <code>leh()</code> atëherë të dy nënklasat <code>PitBull</code> dhe <code>Doberman</code> do ta trashëgojnë këtë metodë, ku kjo e bën të mundshme që programori ta shkruaj vetëm një herë këtë metodë.<br />Çdo nënklasë mund t'i ndryshoj tiparet dhe sjelljet e trashëguara. Për shembull, nënklasa <code>Doberman</code> mund ta ndryshon tiparin <code>ngjyraQimes</code> që ta ketë vlerën <code>zi-dhe-kafe</code>; ose nënklasa <code>PitBull</code> mund ta ndryshon metodën <code>leh()</code> që lehja të jetë më e fuqishme tek instancat e kësaj nënklase.<br />'''Trashëgimia e shumëfishtë''' paraqet rastin kur trashëgimia bëhet nga më shumë se një klasë, përderisa asnjëra nga klasat prindërore nuk është e trashëguar nga njëra tjetra.
; Abstraksioni : Është procesi i thjeshtëzimit dhe faktorizimit të detajeve me qëllim të përqendrimit në disa koncepte në krahasim prej përqendrimit në të gjitha konceptet përnjëheri. Pra, abstraksioni paraqet procesin në të cilin bëhet modelimi i klasave të përshtatshme për problemin, si dhe punimi me nivelin e përshtatshmën të trashëgimisë prej një aspekti specifik të problemit.
; Kapsulimi : Është njëri nga tre konceptet themelore të programimit të orientuar në objekte (dy të tjerët janë '''Trashëgimi''' dhe '''Polimorfizmi''')<ref>{{ cite book | title= Pocket PowerBuilder Resource Guide and Reference | chapter= Chapter 1: Implementing Object-Oriented Programming Techniques | chapterurl= http://manuals.sybase.com/onlinebooks/group-ppb/ppbg0100e/pkresref/@Generic__BookTextView/301;pt=50 | publisher= Sybase, Inc. | year= 2003 | month= 07 | accessdate= 2009-01-27 }} - {{en}}</ref>. Ky koncept paraqet fshehjen e detajeve të implementimit të klasës si dhe ofrimin e qasjes vetëm nëpërmjet interfejsit të dokumentuar ( [[Metodametoda qasësendryshuese|metodave qasëse]] dhe [[Metoda ndryshuese|metodave ndryshuese]])<ref>{{ cite web | url= http://www.java4all.info/corejava/interview-questions/java-interview-questions-4.html | title= Java Interview Questions: What is Encapsulation? | accessdate= 2009-01-27 }} - {{en}}</ref>.
; Polimorfizmi : Polimorfizmi në programimin e orientuar në objekte e bën të mundshëm që objektet që përkasin tipeve të dhënave të ndryshme t'i përgjigjen thirrjeve të metodave me emër të njëjtë në përputhshmëri me specifikat e tipit të tyre. Për shembull, nëse kemi klasën <code>Njeri</code> e cila e ka metodën <code>pershendet()</code>, dhe më pas kemi dy nënklasa <code>Shqiptar</code> dhe <code>Anglez</code> atëherë ato do të trashëgojnë dhe e mbishkruajnë strukturën dhe funksionalitetin e metodës <code>pershendet()</code> sipas specifikave të tipit. Ky mbishkrim do ta bën të mundshme që kur të thirret metoda <code>pershendet()</code> në instancat (objektet) e nënklasave <code>Shqiptar</code> dhe <code>Anglez</code> të dy instancat do të reagojnë sipas specifikave të tipit të tyre, pra: <code>shqiptar.pershendet()</code> do të kthen <code>Përshëndetje!</code> ndërsa <code>anglez.pershendet()</code> do të kthen <code>Hello!</code>.
; Shçiftëzimi : Shçiftëzimi ([[gjuha angleze|ang.]] ''decoupling'') paraqet procesin e minimalizimit të sasisë dhe fuqisë të varshmërive në mes të pjesëve të ndryshme të programit. Nëpërmjet këtij procesi bëhet lokalizimi i operimeve të ndryshme në entitete të vetme ku këto kanë varshmëri minimale ndaj entiteteve tjera. Kjo veti e POO-së është shumë e dobishme, sidomos për programe të mëdha, pasi që nëse është bë shçiftëzimi, atëherë në rast të ndonjë problemi, programori mund të përqendrohet në një entitet të vetëm e jo në tërë programin<ref>{{ cite journal | last= Jackson | first= Daniel | year= 2008 | title= A Direct Path To Dependable Software | journal= Communications of the [[ACM]] | url= http://sdg.csail.mit.edu/pubs/2008/cacm-08.pdf | accessdate= 2009-01-27 | format= PDF }} - {{en}}</ref>.
 
== Referencat ==