![]() |
| | #1 (permalink) |
| Sınıf bildirimi: Sınıf bildirimi class anahtar kelimesi ile gerçekleştirilir. Sınıf isminden sonra sınıf içindeki üye eleman ve metotlar tanımlanır. Kod: class sinif_ismi
{
erişim veri_tipi değişken; // Sınıf Üyeleri
erişim dönüş_değeri
metot_ismi(parametreler)
{}
}
(class) oluşturulmuştur. Class isminden sonra gelen sınıf üyeleri küme parantezleri ({ }) içinde yer almaktadır. Sınıf Nesneleri Tanımlama Örneğin ; Kod: using System;
namespace Siniflar
{
class Musteri
{
private string Isim;
public void IsimAl(string isim)
{
Isim = isim;
}
public void IsimYaz()
{
Console.WriteLine(Isim);
}
}
class Uygulama
{
static void Main ()
{
Musteri a = new Musteri();
a.IsimAl("Hakan B.");
a.IsimYaz();
}
}
}
değişkeni, IsimAl ve IsimYaz adında iki tane yöntemi bulunmaktadır. Müsteri sınıfı, bu türden tanımlanacak bir nesnenin şemasıdır yani nesnenin verilerini ve davranışlarını göstermektedir. Daha sonra müsteri sınıfı türünden bir nesnenin bildirimi için “new” anahtar sözcüğü kullanılmakta ve nesnenin tanımlaması yapılmaktadır. Bildirimler, derleyiciye değişkenler hakkında bilgi verir. Tanımlama ise bellekte bir yer ayırma işlemidir. New anahtar sözcüğü ile sınıf için heap bellek bölgesinde bir yer ayrılmaktadır. Bu yerin adresi de yani referans değeri de stack bölgesinde saklanmaktadır. .NET Framework içinde bellek temizleme görevini üstlenmiş olan çöp toplayıcısı ( garbage collector ) new anahtar sözcüğü ile oluşturulmuş olan nesnelerin referansları yoksa bu alanları temizler ve belleğe geri bırakır. Sınıf Üyeleri Sınıf üyeleri temelde iki kısma ayrılmaktadır. Veri üyeleri ( data members ) ve fonksiyon üyeleri ( member functions, methods ) Veri üyeleri; alanlar (fields), sabitler (constants) ve olaylar (events)dan oluşur. Alanlar, nesneye ait bilgilerin tutulduğu üye değişkenlerdir. Sabitler, nesnenin değiştirilemeyen alanlarıdır. Olaylar, belirli bir tetiklemenin meydana gelmesi sonucunda çağrılacak olan fonksiyonların adres bilgilerini tutmakla sorumludur. Sınıfın veri üyeleri değer türlerinde olabileceği gibi, referans türlerinde de olabilir. Her nesnenin sahip olduğu data diğer nesnelerden ayrılmıştır yani her nesnenin datası kendisine aittir, hiçbir şekilde karışmaz. Fonksiyon üyeleri, yöntemler (methods), özellikler (properties), yapıcı fonksiyonlar (constructors), sonlandırıcılar (destructor), operatörler (operators) ve dizinleyiciler (indexer)den oluşur. Yöntemler nesnenin davranış şekilleridir. Nesne kullanıcısına üye veriler üzerinde işlem yapmasına izin verir ve nesnenin dışa kapalı üyelerine ulaşılmasını sağlar. Özellikler alanlar gibidir. Hatta bunlara akıllı alanlar da denilmektedir. Nesnenin üye verilerine değer atanmasının ve değer çekilmesinin kontrollü olarak yapılmasını sağlar. Yapıcı ve sonlandırıcı yöntemler nesnenin özel yöntemleridir. Yapıcı yöntemler nesne ilk oluşturulduğunda çağrılırken sonlandırıcı yöntemler nesnenin ömrü tamamlandığında çağrılır. Operatörler nesnelerin daha esnek kullanılmasına izin vermektedir. Dizinleyiciler nesnenin bir dizi gibi kullanılmasına izin verir. İç İçe Tipler : Tipler bazen diğer tipleri de içerebilir. Bu tür kullanımlara İç İçe Tipler adı verilir. Aşağıdaki program parçasında, bir sınıf içinde başka bir sınıf tanımlanmıştır. Kod: public class KrediModulu
{
// KrediModulu kodları buraya yazılır
private class KrediKartlari
{
// KrediKartlari kodları buraya yazılır.
}
}
Sınıflar bir veri yapısıdır. Sınıflar yardımıyla gerçek hayattaki bir nesneye yönelik modelleme yapabiliriz. Örneğin bir kredi kartı hesabı için birçok özellik vardır, hesap nu, limit, kart sahibi. Bu bizim için gerçek hayattaki bir modeli temsil eden bir yapıdır. Kod: class KrediHesabi
{
public int HesapNo;
public double Limit;
public string KartSahibi;
}
Programlarımızda iş yapan en temel parçalar metotlardır. Metotlar, sınıfların üye fonksiyonlarıdır. C, C++, Visual Basic gibi dillerde global fonksiyonlar bulunmaktaydı ancak C# da tüm fonksiyonlar bir sınıfın üyesi olmak zorundadır. Metot bildirimi ; Kod: [erişim] <dönüş değeri> metot ismi (parametre listesi)
{
metot gövdesi;
}
Bildirimdeki [erişim] seçeneği metoda nasıl ulaşılacağını gösterir. Eğer bir ifade yazılmazsa metot Private kabul edilir. Yöntemler genelde public anahtar sözcüğü ile belirtilir. Böylece nesnenin kullanıcısı bu yöntemleri kullanarak nesnenin private anahtar sözcüğü ile tanımlanmış ve dışa kapalı verilerine ulaşılabilir. C# da tüm yöntemler sınıf içinde bildirilir ve tanımlanır. C# %100 nesne tabanlı bir dil olduğundan, bir metot kullanılırken bulunduğu sınıf türünden bir nesne tanımlanır ve “.” operatörü ile metoda ulaşılır. Geri dönüş değeri olmayan metotlar “void” olarak tanımlanır. “void” tanımlı bir fonksiyon için “return” kullanılamaz. Örneğin ; Kod: public void BenimVoidMetodum()
{
MessageBox.Show("Bu metot bir değer döndürmez");
}
public int Topla(int birinci, int ikinci)
{
int Sonuc;
Sonuc = birinci + ikinci;
return Sonuc;
}
Kod: void yaz()
{C
onsole.WriteLine(“Elazığ”);
return;
}
metot, içinde olduğu sınıftan çağrılacaksa metodun sadece ismi yazılarak çalıştırılabilir, eğer sınıf dışından bir çağrım yapılacaksa “SınıfAdi.Metot()” şeklinde çağrılmalıdır. Static tanımı ile oluşturulmuş metot için new operatörü ile yeni bir nesne tanımlamaya gerek yoktur. Aşağıdaki örneği inceleyelim. Kod: using System;
class Class1
{
public static void Main()
{
Class1 fonk = new Class1();
int deger = fonk.topla(3, 5);
Console.WriteLine(deger);
Console.Read();
}
public int topla(int sayi1, int sayi2)
{
int toplam = sayi1 + sayi2;
return toplam;
}
}
sayesinde "topla" fonksiyonuna ulaştık. Nesnelerin mantığını şöyle özetleyebiliriz: Nesneleri tanımlayarak sınıfların özelliklerini bir nesneye yükleriz. Ardından bu nesne ile sınıf içindeki metot ve değişkenlere (Sadece özel izin verdiklerimize) ulaşabiliriz. Örneği inceleyecek olursak, "fonk" isimli nesnemizi tanımlamak için Kod: Class1 fonk = new Class1() ; Ardından nesnenin adı yazılır. " = " işaretinden sonra "new" komutu ile sınıf adı tekrar yazılır. Parantezlerin kullanım amacı fonksiyon ve metotlardakine benzer. Nesne tanımlandıktan sonra sınıf içindeki metot ve değişkenlere "." işaretinden sonra metot veya değişken ismini yazarak ulaşabiliriz. Kaynak : MEGEP | Nesne Tabanlı Programlama 1
__________________ Beni Sevmek İçin Programlanma Devrelerini Yakarım ! | |
| | |
![]() |
| Seçenekler | |
| Stil | |
| |
Benzer Konular | ||||
| Konu | Konuyu Başlatan | Forum | Cevaplar | Son Mesaj |
| The Base Class Library - Temel Sınıf Kütüphaneleri Nelerdir ? | Taner | C# | 0 | 12-08-2009 01:19 |