Enkapsulimi (Programimi i orientuar ne objekte)

(Përcjellë nga Enkapsulim)
This is the stable version, checked on 9 tetor 2022. 2 pending changes await review.

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

Redakto

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 {
	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

Redakto

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

Redakto
  1. ^ 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."
  2. ^ Nell B. Dale, Chip Weems, Programming and problem solving with Java, Edition 2, Jones & Bartlett Publishers, 2007, ISBN 0-7637-3402-0, p. 396
  3. ^ John C. Mitchell, Concepts in programming languages, Cambridge University Press, 2003, ISBN 0-521-78098-5, p.522
  4. ^ 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
  5. ^ Wm. Paul Rogers, Encapsulation is not information hiding Arkivuar 29 tetor 2013 tek Wayback Machine, JavaWorld.com, 05/18/01
  6. ^ 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
  7. ^ Rodgers, Wm. Paul. "Encapsulation is not information hiding". JavaWorld. Marrë më 2014-03-15. {{cite web}}: Mungon ose është bosh parametri |language= (Ndihmë!)