Enkapsulimi (Programimi i orientuar ne objekte): Dallime mes rishikimesh

Nga Wikipedia, enciklopedia e lirë
[Redaktim i kontrolluar][Redaktim i kontrolluar]
Content deleted Content added
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

  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ë!)