Enkapsulimi (Programimi i orientuar ne objekte)
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
RedaktoNë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 {
public class Llogari {
private decimal bilanciLlogarise = 500.00m;
public decimal ShikoBilancin() {
return bilanciLlogarise;
}
}
static void Main() {
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" */
}
}
Definicioni i përgjithshëm
RedaktoNë 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
Redakto- ^ 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ë!)