Kapsülleme (Encapsulation) C#
Daha fazla bilgi için : www.gorselprogramlama.com
Kapsülleme (Encapsulation): Verilerin ve kodların dış etkenlerden korumaktır.
Özellikleri:
* Bir nesnenin dış dünyadan soyutlanıp iç dünyasında işlem yapması
* Başka kod ve sınıflar tarafından kulanılmaması için koruyucu bariyer görevi görür.
*Kodları erişilmez hale getirir.
*Nesne tabanlı programlamanın temel ilkelerinden birisidir.
Not : Class içinde bir değişkene ulaşılmaması için private olarak tanımlamalsınız.
Örnek: Karenin alanı hesaplayan class içinde bir metot hazırlayalım.Kenarı classa gönderdikten sonra kapsülleyip o şekilde kullanalım.

[code lang=”csharp”]
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace kapsulleme2
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
} //Daha fazla bilgi için : www.gorselprogramlama.com
private void button1_Click(object sender, EventArgs e)
{
Kare k = new Kare();
label1.Text = k.alan(int.Parse(textBox1.Text)).ToString();
}
}
}
class Kare
{
private int sonuc, kenar;
public int alan(int a)
{
kenar = a;
sonuc = kenar* kenar;
return sonuc;
} //Daha fazla bilgi için : www.gorselprogramlama.com
}
[/code]
class içinde tanımlanan sonuc ve kenar değişkenleri private tanımlandığı için dışarıdan bu değişkenlere erişilmez.

Örnek: Diktdörtgenin alanı hesaplayan class içinde bir metot hazırlayalım.Kenarları classa gönderdikten sonra kapsülleyip o şekilde kullanalım.

[code lang=”csharp”]
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace kapsulleme2
{
public partial class Form1 : Form
{ //Daha fazla bilgi için : www.gorselprogramlama.com
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
Dikdortgen d = new Dikdortgen();
label1.Text = d.alan(int.Parse(textBox1.Text), int.Parse(textBox2.Text)).ToString();
}
}
}
class Dikdortgen
{
private int sonuc, kkenar,ukenar;
public int alan(int a,int b)
{ //Daha fazla bilgi için : www.gorselprogramlama.com
kkenar = a;
ukenar = b;
sonuc = kkenar* ukenar;
return sonuc;
}
}
[/code]

Örnek : Kapsülleme işlemi get- set deyimleri kullanılırkende yapılabilir.

[code lang=”csharp”]
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace kapsulleme2
{ //Daha fazla bilgi için : www.gorselprogramlama.com
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{ ////Daha fazla bilgi için : www.gorselprogramlama.com
Dikdortgen d = new Dikdortgen();
d.kisaKenar=int.Parse(textBox1.Text);
d.uzunKenar = int.Parse(textBox2.Text);
label1.Text = d.alan().ToString();
}
}
}
class Dikdortgen
{
private int kkenar;
public int kisaKenar
{
set { kkenar = value; }
get { return kkenar; }
}
private int ukenar;
public int uzunKenar
{
set { ukenar= value; }
get { return ukenar; }
}
private int araIslem()
{
int sonuc, a, b;
a = kkenar;
b = ukenar;
sonuc = a * b;
return sonuc;
}
public int alan()
{
return araIslem();
} //Daha fazla bilgi için : www.gorselprogramlama.com
}
[/code]