Enkapsulimi (Programimi i orientuar ne objekte): Dallime mes rishikimesh
[Redaktim i kontrolluar] | [Redaktim i kontrolluar] |
Smallem (diskuto | kontribute) |
Smallem (diskuto | kontribute) Etiketa: Reverted |
||
Rreshti 11: | Rreshti 11: | ||
Më poshtë është një shembull në [[Gjuha Programuese C Sharp|C#]] që tregon si të krijohet qasje në fushat e të dhënave të cilat mund të jenë të kufizuara përmes përdorimit të fjalës kyçe <code>private</code>: |
Më poshtë është një shembull në [[Gjuha Programuese C Sharp|C#]] që tregon si të krijohet qasje në fushat e të dhënave të cilat mund të jenë të kufizuara përmes përdorimit të fjalës kyçe <code>private</code>: |
||
<source lang="csharp"> |
<source lang="csharp"> |
||
class Program |
class Program __L_CURLY__ |
||
public class Llogari |
public class Llogari __L_CURLY__ |
||
private decimal bilanciLlogarise = 500.00m; |
private decimal bilanciLlogarise = 500.00m; |
||
public decimal ShikoBilancin() |
public decimal ShikoBilancin() __L_CURLY__ |
||
return bilanciLlogarise; |
return bilanciLlogarise; |
||
__R_CURLY__ |
|||
} |
|||
__R_CURLY__ |
|||
} |
|||
static void Main() |
static void Main() __L_CURLY__ |
||
Llogari llogaria = new Llogari(); |
Llogari llogaria = new Llogari(); |
||
decimal bilanci = llogaria.ShikoBilancin(); |
decimal bilanci = llogaria.ShikoBilancin(); |
||
Rreshti 27: | Rreshti 27: | ||
* përmes metodës publike "ShikoBilancin" në klasën "Llogari", |
* përmes metodës publike "ShikoBilancin" në klasën "Llogari", |
||
* por nuk mund ta ndryshojmë vlerën e "bilanciLlogarise" */ |
* por nuk mund ta ndryshojmë vlerën e "bilanciLlogarise" */ |
||
__R_CURLY__ |
|||
} |
|||
} |
} |
||
</source> |
</source> |
Versioni i datës 8 tetor 2022 14:54
Në gjuhët programuese, enkapsulimi përdoret për t'iu referuar dy nocioneve të lidhura mes veti por te cilat dallojne nga njera tjera, dhe ndonjëherë kombinimit të tyre[1][2]:
- Një mekanizëm i gjuhës i cili kufizon qasjen në disa komponente të objekteve.[3][4]
- Nje konstrukt i gjuhës që mundëson mbledhjen e të dhenave dhe metodave që veprojnë mbi ato të dhëna.[5][6]
Definicioni i dytë është motivuar nga fakti se në shumë gjuhë te orientuara në objekte fshehja e komponentëve nuk është automatike, kështu që fshehja e informatave është e definuar si nocion i ndarë nga ata të cilët e preferojnë definicionin e dytë.
Si mekanizëm për fshehjen e informatës
Nën këtë definicion, enkapsulim do të thotë që struktura e brendshme e objektit është e fshehur prej jasht definicionit te objektit. Vetëm metodat e objekteve munden direkt të shohin ose të manipulojnë në ato fusha. Disa gjuhë si Smalltalk dhe Ruby lejojnë hyrjen vetëm nëpërmjet metodave të objektit, por shumica (si C++, C#, ose Java) i ofrojnë programerit një shkalle të kontrollit në lidhje se çfarë do të fshehet, zakonisht përmes shprehjeve sikur public
ose private
.[4]
Më poshtë është një shembull në C# që tregon si të krijohet qasje në fushat e të dhënave të cilat mund të jenë të kufizuara përmes përdorimit të fjalës kyçe private
:
class Program __L_CURLY__
public class Llogari __L_CURLY__
private decimal bilanciLlogarise = 500.00m;
public decimal ShikoBilancin() __L_CURLY__
return bilanciLlogarise;
__R_CURLY__
__R_CURLY__
static void Main() __L_CURLY__
Llogari llogaria = new Llogari();
decimal bilanci = llogaria.ShikoBilancin();
/* Nga metoda Main mund të shohim bilancin e llogarisë
* përmes metodës publike "ShikoBilancin" në klasën "Llogari",
* por nuk mund ta ndryshojmë vlerën e "bilanciLlogarise" */
__R_CURLY__
}
Definicioni i përgjithshëm
Në përgjithësi, enkapsulimi është një nga katër shtyllat e programimit të orientuar në objekte. Enkapsulimi kupton bashkimin e të dhënave me metoda të cilat veprojnë mbi to.[7] Enkapsulimi përdoret për të fshehur strukturën e të dhënave brenda klasës, duke parandaluar palët e pa autorizuara të kenë qasje direkte në to.
Referime
- ^ Michael Lee Scott, Programming language pragmatics, Edition 2, Morgan Kaufmann, 2006, ISBN 0-12-633951-1, p. 481: "Encapsulation mechanisms enable the programmer to group data and the subroutines that operate on them together in one place, and to hide irrelevant details from the users of an abstraction."
- ^ Nell B. Dale, Chip Weems, Programming and problem solving with Java, Edition 2, Jones & Bartlett Publishers, 2007, ISBN 0-7637-3402-0, p. 396
- ^ John C. Mitchell, Concepts in programming languages, Cambridge University Press, 2003, ISBN 0-521-78098-5, p.522
- ^ a b Pierce, Benjamin (2002). Types and Programming Languages. MIT Press. ISBN 0-262-16209-1.
{{cite book}}
: Mungon ose është bosh parametri|language=
(Ndihmë!) p. 266 - ^ Wm. Paul Rogers, Encapsulation is not information hiding Arkivuar 29 tetor 2013 tek Wayback Machine, JavaWorld.com, 05/18/01
- ^ Thomas M. Connolly, Carolyn E. Begg, Database systems: a practical approach to design, implementation, and management, Edition 4, Pearson Education, 2005, ISBN 0-321-21025-5, Chapter 25, "Introduction to Object DMBS", section "Object-oriented concepts", p. 814
- ^ Rodgers, Wm. Paul. "Encapsulation is not information hiding". JavaWorld. Marrë më 2014-03-15.
{{cite web}}
: Mungon ose është bosh parametri|language=
(Ndihmë!)