Sınıflar

<< Click to Display Table of Contents >>

Navigation:  Likom Gusto Olay Yönetimi > İleri Düzey Tanımlar ve Yazılım Kodları > C# Diline Giriş >

Sınıflar

Previous pageReturn to chapter overviewNext page

Her ne kadar Olay Yönetimi'nde sınıf tanımı yapmayacaksanız da mevcut sınıflar ve methodlarını kullanacağınızdan sınıflar hakkında da genel bilgi edinmeniz faydalı olacaktır.

 

Sın2tıf, bir nesnenin şeklini tanımlayan bir şablondur. Sınıf, hem verileri hem de bu veriler üzerinde işlem yapacak kodu belirtir. C#'ta nesneleri tanımlamak için bir sınıf spesifikasyonu kullanılmaktadır. Nesneler bir sınıfın örnekleridir. Yani, sınıf esasen nesnelerin ne şekilde inşa edileceğini belirten birtakım planlardan ibarettir. Bir sınıfı oluşturan method ve değişkenler söz konusu sınıfın üyeleridir. Sınıfın genel tanımı aşağıdaki gibidir.

 

  class sinifIsmi

     {

      //örnek değişkenleri deklare et

         erişim tip değişken1;

         erişim tip değişken2;

      // ...

         erişim tip değişkenN;

      // methodları deklare et

         erişim dönüş-tipi method1(parametretipi parametre adı)

         {

      // method gövdesi

         }

      //...

          erişim dönüş-tipi methodN(parametretipi parametre adı)

         {

      // method gövdesi

         }

     }

 

Dikkat edilirse sınıf tanımında her bir değişken ve methodun erişim şekli bulunmaktadır. Örneğin public (erişime açık) ve private (erişime kapalı-sınıf kullanımına özel) gibi erişim çeşitleri bulunmaktadır. Fakat bu kısımları yazılım kodu tanımlarken kullanmayacağınızdan üzerinde çok durulmayacaktır.

 

Değişken tanımında erişim sözcüğünden sonra tip bilgisi bulunmaktadır. Bu değişkenin tipini bildirmek için kullanılır.

Methodlar için ise dönüş-tipi bilgisi bulunmaktadır. Eğer method bir değer döndürüyorsa döndürdüğü değerin tipini bildirmek durumundadır. Eğer değer döndürmüyorsa dönüş tipi kısmına void anahtar sözcüğü yazılır.  Dönüş tipini methodun adı takip eder. Eğer method parametre alıyorsa parametreler tipi bilgisi ve etiketi ile method adından sonra parantez içerisinde virgülle ayrılmış şekilde belirtilmelidir.

 

namespace (isim uzayları)


İsim alanları, isim çakışmalarını önlemek  ve yazılan programda mantıksal organizasyonu sağlayan terimlerdir. Örneğin .NET framework'te işlerimizi kolaylaştıran birtakım temel sınıf kütüphaneleri bulunur(Base Class Library) .

Örneğin veri tabanında bir select sorgusu koştuğunuzda sonuç DataSet türünden bir nesneye doldurulur. Bu sınıf türü System.Data isim uzayında bulunmaktadır. Adından da anlaşılacağı gibi veri ile ilgili bir sınıf olduğundan System.Data isim uzayında bulunmaktadır. Birden çok web servis tanımı eklediğinizi düşünelim. Bunların içerisinde aynı isimde sınıfların olması  isim çakışmalarına sebep olacak ve web servisleriniz çalışmayacaktır. Fakat servis tanımına verilen isim namespace olarak servisleri organize etmesi sayesinde bu sorun aşılmış olacaktır.

 

Nesne nasıl yaratılır


Bir nesne yaratılırken new anahtar sözcüğü kullanılmaktadır.

Örnek olarak 1'den 10'a kadar olan sayıların tek mi çift mi olduğunu belirten ve bunu Olay Yönetimi loglarına kaydeden bir yazılım kodu yazalım.

 

// StringBuilder türünden nesne yaratıyoruz

System.Text.StringBuilder sb=new System.Text.StringBuilder ();

sb.AppendLine("10 a kadar sayılar");

for(int i=1;i<=10;i++)

{

// sayının tek mi çift mi olduğuna bakılıyor

string durum;

if(i%2==0)

       durum="çifttir";

else

       durum="tektir";

sb.AppendFormat("{0} sayısı {1}\n",i,durum);

 

}

UserActionHelper.LogWriter.WriteLog(sb.ToString());

 

 

Yukardaki yazılım kodunu içeren bir olay çalıştırıldığında aşağıdaki gibi sonuç elde edilir.

classReesult