Programimi i orientuar në objekte: Dallime mes rishikimesh

[redaktim i pashqyrtuar][redaktim i pashqyrtuar]
Content deleted Content added
No edit summary
No edit summary
Rreshti 20:
Deborah J. Armstrong nëpërmjet studimit të saj pothuajse 40-vjeçar të literaturës kompjuterike ka përpiluar listën vijuese e koncepteve thelbësore të cilat janë të përfshira në shumicën e definicioneve të POO-së<ref name="quarks_oop">{{ cite journal | last= J Armstrong | first= Deborah | year= 2006 | month = February | title= The Quarks of Object-Oriented Development | journal= Communications of the [[ACM]] | volume= 49 | issue= 2 | pages= 123–128 | id= {{ISSN|0001-0782}} | url= http://portal.acm.org/citation.cfm?id=1113040 | accessdate= 2009-01-26 | doi = 10.1145/1113034.1113040 }} - {{en}}</ref>:
; Klasa : Definon tiparet dhe sjelljet (metodat) e '''objektit'''. Pra, klasa mund të konsiderohet si një kallëp për objekte. Nëse e marrim rastin e klasës <code>Qeni</code> shohim që kjo klasë do t'i përmbaj tiparet thelbësore për të gjithë qentë, si p.sh. lloji, ngjyra e qimes, etj. Klasa gjithashtu do të përmbaj edhe sjelljet (metodat) si p.sh. aftësia për të lehur dhe për t'u ulur. Këto tipare si dhe metoda që përfshihen nga klasa janë të njohura si '''anëtarë''' të klasës.
; Objekti : Është një ekzemplar i klasës. Pra, klasa <code>Qeni</code> paraqet kallëpin për qenë të ndryshëm, ndërsa objekti Peofi paraqet një qenë të veçantë, me veti dhe sjellje të veçanta të trashëguara nga klasa <code>Qeni</code> si p.sh. lloji për objektin Peofi është <code>pit bull</code> ndërsa ngjyra e qimes është <code>e zezë</code>.
; Instanca : Instanca paraqet objektin të krijuar nga klasa. Pra, duke u bazuar në rastin e lartpërmendur objekti <code>Peofi</code> është '''instancë''' e klasës <code>Qeni</code>. Grumbulli i vlerave dhe atributeve të një objekti njihet si '''gjendje''', ku kjo d.t.th. që objekti përbehet nga gjendja dhe sjelljet që janë të definuara në klasën e objektit.
; Metoda : Paraqet sjelljet dhe aftësitë e një objekti.Metodat mund t'i shohim si procedura ose funksione. Procedurat jane metodat qe nuk kane vlere kthese, ndersa funksionet jane metoda qe kthejne dicka si rezultat i ekzekutimit te asaj metode. Pra, objekti Peofi ka aftësinë për të lehur, dhe për atë arsye ky objekt përmban metodën <code>leh()</code>. Objekti <code>Peofi</code> mund të përmbaj edhe metoda tjera si p.sh. <code>ulu()</code>, <code>ec()</code>, etj.
; Dërgimi i mesazhit : Procesi me anë të cilit objekti dërgon të dhëna një objekti tjetër, ose kërkon nga një objekt tjetër që ta thërras një metodë<ref name="quarks_oop" />.
; 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>Peofi</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.