Kapsülleme (encapsulation) nedir nasıl kullanılır örnekler
1 using System;
2
3 namespace uyg1
4 {
5 public class Musteri
6 {
7 private int m_id = -1;
8 public int GETID()
9 {
10 return m_id;
11 }
12 public void SETID(int id)
13 {
14 m_id = id;
15 }
16 private string m_adi = string.Empty;
17 public string GETISIM()
18 {
19 return m_adi;
20 }
21 public void SETISIM(string ad)
22 {
23 m_adi = ad;
24 }
25 }
26
27 class Program
28 {
29 static void Main()
30 {
31 Musteri mst = new Musteri();
32 mst.SETISIM("Erdem");
33 mst.SETID(3);
34 Console.WriteLine("id={0}\nisim:{1}",mst.GETID(),mst.GETISIM());
35 Console.ReadKey();
36 }
37 }
38 }
ÖRNEK ► Üstteki örneği Kapsülleme ile yapma lım .
1 namespace uyg2
2 {
3 public class Musteri
4 {
5
6 private int m_id = -1;
7 public int Id
8 {
9 get { return m_id; } //field'ın value return eder...
10 set { m_id = value; } //field'ın value'sunu set eder...
11 }
12
13 private string m_adi = string.Empty;
14 public string Adi
15 {
16 get { return m_adi; }
17 set { m_adi = value; }
18 }
19 }
20
21
22 class Program
23 {
24 static void Main()
25 {
26 Musteri mst = new Musteri();
27 mst.Adi = ("Erdem");
28 mst.Id = (3);
29 Console.WriteLine("id={0}\nisim:{1}", mst.Id, mst.Adi);
30 Console.ReadKey();
31 }
32 }
33 }
ÖRNEK ► Kapsülleme
1 using System;
2
3 namespace uyg3
4 {
5 public class Musteri
6 {
7
8 private int m_id = -1;
9 public Musteri(int id, string ad)
10 {
11 m_id = id;
12 m_adi = ad;
13 }
14 public int Id
15 {
16 get { return m_id; } //şuan sadece değeri bize verir.
17 }
18
19 private string m_adi = string.Empty;
20 public string Adi
21 {
22 get { return m_adi; }
23 }
24 }
25
26
27 class Program
28 {
29 static void Main()
30 {
31 Musteri mst = new Musteri(1,"Ramazan");
32 Console.WriteLine("id={0}\nisim:{1}", mst.Id, mst.Adi);
33 Console.ReadKey();
34 }
35 }
36
37 }
ÖRNEK:
1 using System;
2
3 namespace uyg4
4 {
5 public class Musteri
6 {
7 private int m_id = -1;
8 private string m_adi = string.Empty;
9
10 public int ID { set { m_id = value; } }
11 public string AD { set { m_adi = value; } }
12 public void EkranaYazdir() { Console.WriteLine("id:{0} / ad:{1}",m_id,m_adi); }
13 }
14
15 class Program
16 {
17 static void Main()
18 {
19 Musteri mst = new Musteri();
20 mst.ID = 1;
21 mst.AD = "zaa";
22 mst.EkranaYazdir();
23 Console.ReadKey();
24 }
25 }
26 }
ÖRNEK:
1 using System;
2
3 namespace uyg5
4 {
5 public class Musteri
6 {
7 public int ID { get; set; }
8 public string AD { get; set; }
9 }
10
11 class Program
12 {
13 static void Main()
14 {
15 Musteri mst = new Musteri();
16 mst.ID = 1;
17 mst.AD = "Yasin";
18 Console.WriteLine("ID:{0} AD:{1}", mst.ID, mst.AD);
19 Console.ReadKey();
20 }
21 }
22 }
ÖRNEK:
1 using System;
2
3 namespace uyg6
4 {
5 class Hali
6 {
7 public const string MOTTO = "Halılarımız Kayseri malıdır...";
8 private int uzunluk, genislik, alan;
9
10 public int Uzunluk
11 {
12 get { return uzunluk; }
13 set { uzunluk = value; hesapla(); }
14 }
15 public int Genislik
16 {
17 get { return genislik; }
18 set { genislik = value; hesapla(); }
19 }
20 public int Alan { get { return alan; } }
21
22 private void hesapla()
23 {
24 alan = uzunluk * genislik;
25 }
26 }
27
28 class Program
29 {
30 static void Main()
31 {
32 Hali hl = new Hali();
33 hl.Uzunluk = 12;
34 hl.Genislik = 14;
35 Console.WriteLine("Halının Alanı: = {0} x {1}\nAlan = {2}", hl.Uzunluk, hl.Genislik,
hl.Alan);
36 Console.ReadKey();
37 }
38 }
39 }
ÖRNEK
* Türetilmiş temek sınıfın elemanlarına ulaşırken yapıcı metot tanımlamaya gerek kalınmaması için base anahtar kelimesi kullanılır.
1 using System;
2
3 namespace uyg7
4 {
5 public class A
6 {
7 public A(int value)
8 {
9 Console.WriteLine("Base Constructor A");
10 }
11 }
12
13 public class B : A
14 {
15 public B(int value)
16 :base(value)
17 {
18 Console.WriteLine("Derived Constructor B");
19 }
20 }
21
22 class Program
23 {
24 static void Main()
25 {
26 A a = new A(0);
27 B b = new B(0);
28 Console.ReadLine();
29 }
30 }
31
32 }