Welcome to Scribd, the world's digital library. Read, publish, and share books and documents. See more
Download
Standard view
Full view
of .
Save to My Library
Look up keyword
Like this
2Activity
0 of .
Results for:
No results containing your search query
P. 1
Bir Sınıfın Anatomisi

Bir Sınıfın Anatomisi

Ratings: (0)|Views: 1,645|Likes:
Published by Mehmet
• Sınıf ve sınıf öğeleri (Constructer, Property, Event, Function, Event) tanımlama.
• Erişim belirteçleri(Public, Private, Protected, Internal)
• Virtual metod kullanma ve override işlemi
• Kalıtım
• Arayüz(Interface) tanımlama ve çoklu kalıtım
• Sınıf ve sınıf öğeleri (Constructer, Property, Event, Function, Event) tanımlama.
• Erişim belirteçleri(Public, Private, Protected, Internal)
• Virtual metod kullanma ve override işlemi
• Kalıtım
• Arayüz(Interface) tanımlama ve çoklu kalıtım

More info:

Published by: Mehmet on Aug 10, 2009
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as DOC or read online from Scribd
See more
See less

05/11/2014

 
BİR SINIFIN ANATOMİSİSınıf, belli özelliklere göre nesneleri gruplamaktır. Örneğin; çam, meşe vs gibi nesneler ağaçolarak sınıflandırılabilir. Aynı şekilde ağaç, çiçek, ot gibi sınıflar da gruplanarak bir üst sınıf olan bitkiler sınıfını oluşturur. Bitkiler, insanlar, hayvanlar da gruplanarak canlılar sınıfınıoluşturmaktadır. Bu ağaç yapısını kökten başlayarak analiz edecek olursak; canlılar sınıfıtemel sınıftır. Bitkiler, insanlar, hayvanlar bu temel sınıftan türemiş sınıflardır. Ağaç, çiçek, otise bitkiler sınıfından türemiş sınıflardır. En sonda ise çam, meşe vs. ağaç sınıfından türemişnesnelerdir. Her sınıfın belli başlı özellikleri ve fonksiyonları vardır. Örneğin; ağaç sınıfınıntürü, boyu vs. gibi özellikleri ve fotosentez yapma gibi fonksiyonları vardır. Ağaç sınıfındantüreyen her nesne bu temel özellikleri ve fonksiyonları miras almaktadır. Nesne yönelimli programlamadaki sınıf kavramının bu benzetmeden farkı yoktur. Bu makalede sınıf kavramıüzerinde duracağız. Sınıflar yazacak, türetme yapacak ve sınıflarda neler bulunur, bunlarıinceleyeceğiz.Örnek olarak "Canlilar" sınıfını yazacak, sonra "Canlilar" sınıfından "Insan" sınıfını türetecek ve nihayetinde "Insan" sınıfından "Mustafa" nesnesini oluşturacağız. Bu süreç içerisindesınıflar içerisinde kullanılan alanlardan, özelliklerden, fonksiyonlardan, metodlardan,yapıcılardan, temsilcilerden yeri geldikçe bahsedeceğiz. Yapıcı metodlar ile başlayalım.Bir sınıfın yeni bir kopyası oluşturulurken, sınıfın yapıcı metodu çalışmaktadır. Yapıcı metodsınıf ile aynı ada sahiptir. Varsayılan yapıcı metod parametre almaz. Ancak çeşitli parametreleri vererek birden fazla yapıcı metod tanımlayabiliriz. Buna aşırı yüklemedenilmektedir. Yapıcı metod tanımlarken dikkat edilmesi gereken nokta
metodun sınıf ileaynı ada sahip olması ve birden fazla yapıcı metod tanımlanmış ise metodlarınparametre sayılarının veya parametre türlerinin birbirinden farklı olmasıdır
. Aşağıda"Canlilar" sınıfımız ve yapılandırıcıları verilmiştir.class Canlilar { private static string tur; private static int yas; public Canlilar(){} public Canlilar(string turu){tur = turu;} public Canlilar(string turu, int yasi){tur = turu;yas = yasi;}}İlk yapılandırıcımız varsayılan yapılandırıcıdır. Nesne herhangi bir parametre almadanoluşturulur. İkinci yapılandırıcımız canlının tür bilgisini alarak "Canlilar" sınıfının kopyasınıoluşturmaktadır. Üçüncü metodumuz ise tür ve yaş bilgilerini alarak sınıfımızın kopyasınıoluşturmaktadır. "Canlilar" sınıfını oluştururken girdiğimiz bu parametreler sınıf içerisinde
 
tanımlanan "tur" ve "yas" değişkenlerine aktarılarak sınıf içerisindeki işlemlerdekullanılmaktadır. Değişkenleri ve yapıcıları tanımlarken
private
ve
public
belirteçlerinikullandık. Private belirteci tanımlanan değişkenin, metodun vs. sadece o sınıf içerisindenerişilebileceğini belirtmektedir. Aksi belirtilmediği sürece bütün değişkenler, metodlar privatetanımlanmıştır. Public belirteci ile tanımlanan değişkenlere, metodlara vs. bütün sınıflardanerişim sağlanmaktadır. Bu iki belirtecin dışında hem sınıf içerisinden hem de referansgösterildiği diğer sınıflardan erişim sağlayan
protected
, içinde bulunduğu sınıfa ait assembyltarafından erişim sağlayan
internal
belirteçleri vardır.Her canlı sınıfının bir türü vardır. Tür, canlılar sınıfının sahip olduğu bir özelliktir. ŞimdiCanlılar sınıfımıza tür özelliğini ekleyelim. public string Tur {get { return tur; }set { tur = value; }}"Tur" özelliği hem dışarıdan değer alan hemde içerdiği değeri çağrıldığı yere aktaran bir yapıdadır. Yani hem okunabilir hem yazılabilir. Set bloğunda aldığı değeri "tur" değişkenineaktarır. Get bloğunda ise "tur" değişkeninin değerini çağrıldığı yere return eder. Özellikler ReadOnly'de olabilir. Bunun için sadece get bloğu yazılır. public string SinifBilgisi{get { return "Canlilar sınıfı."; }}"SinifBilgisi" adlı bu özellik kullanıldığında "Canlılar sınıfı." stringini return eder."SinifBilgisi" özelliğine değer atadığımızda bu özelliğin ReadOnly olduğunu belirten bir hataile karşılaşırız. Özelliklerin yanında sınıflarda bazı işlevleri yerine getiren fonksiyonlar olabilir. Örnek olarak "Canlilar" sınıfımızda dışarıdan canlının doğum tarihini alıp geriyeyaşını return eden bir fonksiyon olsun. public int YasHesapla(DateTime dogumTar){int dogumTarihi = dogumTar.Year;yas = Convert.ToInt32(DateTime.Now.Year) - dogumTarihi;return yas;}Bir sınıf içerisinde yazdığımız bir fonksiyonun içeriğine, bu sınıftan türettiğimiz bir sınıftaeklemeler yapabilir veya içeriğini tamamen değiştirebiliriz. Bunun için sonradan içeriğinemüdahele edebileceğimiz metodları
virtual
olarak tanımlamalıyız. Virtual metodlara, bumetodların bulunduğu sınıftan türemiş sınıflarda müdahele edilebilir. Örnek olarak canlılar sınıfımızda "TurYaz" adında canlının türünü ve yaşını return eden virtual bir metodu olsun. public virtual string TurYaz()
 
{return tur+" "+yas.ToString();}Şimdi, "Canlılar" sınıfından "Insan" sınıfını türetelim. Sınıf isminden sonra "
:
" koyuptüreteceğimiz sınıfın ismini yazıyoruz. Unutmamak gerekir ki bir sınıf ancak bir tek sınıftantüreyebilir. Çoklu kalıtım için ilerleyen satırlarda değineceğimiz arayüzler(Interface)kullanılır.class Insan:Canlilar {}"Insan" sınıfını "Canlilar" sınıfından türettik. Artık "Insan" sınıfımız da yukarıda "Canlilar"sınıfı için yazdığımız "Tur" ve "SinifBilgisi" özellikleri ile "YasHesapla" ve "TurYaz"metodlarına sahiptir. Bu üyeler static tanımlanmadığından direkt erişilemezler. Öncelikle"Insan" sınıfından bir kopya oluşturmamız gerekmektedir. Hem buna hemde virtualmetodların içeriğine müdahele edilmesine örnek olarak "Insan" sınıfımzıda "TurYaz"metodunu override edelim.class Insan:Canlilar { private string ad; public override string TurYaz(){Insan yeni = new Insan();yeni.Tur = "Insan";return "Bu canlı " + yeni.Tur+".Adı "+ad;} public string Ad{get { return ad; }set { ad = value; }}}İnsan sınıfının bir kopyasını oluşturduk. Bu şekilde "Tur" özelliğine erişebildik. Intellisenseözelliği ile bunu gözlemleyebiliriz.

Activity (2)

You've already reviewed this. Edit your review.
1 thousand reads
1 hundred reads

You're Reading a Free Preview

Download
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->