{Merhaba Dünya Ben Emre Kıyak}

 





C#.NET ve sınıflar

Share |


Bu yazıda C#.NET'te sınıfların (class) genel yapısından, nasıl oluşturulup kullanıldığından sizlere temel fikir vermesi amacıyla bahsedeceğim.

Konuyu bir örnekle açıklamak istiyorum. Kurumsal bir şirketin çeşitli departmanları vardır. Bunlar mali işler, insan kaynakları, muhaberat gibi. Bu departmanların içindeki çalışanların da üstlendikleri bir takım vazifeler, sorumluluklar, işler vardır. .NET Frameworkde sınıf yapılarını aynen bu örneğe benzetebiliriz. .NET Framework içerisinde de çeşitli sınıflar ve iş yapan metotlar vardır. Örneğin convert sınıfının Int32() metodu gibi.

Müşterinizin sizden bir e-ticaret projesi istediğini varsayalım. Ürünlerin listelenmesi, tanıtımı, kategorilerin yönetilmesi, müşterilerin kaydının tutulması, müşterilere çeşitli ebültenler gönderilmesi, sipariş alınması, kargo takibi gibi proje içinde olması istenen pek çok uygulama yer alacaktır. Nesne yönelimli programlama (object oriented programming) dediğimiz kavram da bizlere programların tasarlanması, kodlanması sürecinde talep edilen hizmetin parçalara, bölümlere ayrılıp hızlı, verimli ve etkili bir şekilde yönetilerek hazırlanabilmesi estetiğini sunar. Program içinde sipariş alındığı, müşterilere eposta gönderildiği, kargo takibinin yapıldığı ayrı ayrı departmanların (sınıf - class) ve bu departmanların içinde de çeşitli sorumlulukları olan çalışanların (metot) olduğunu anlamalıyız.

Bu örneklerden sonra şimdi teknik olarak C#.NET'te nasıl sınıf oluşturulduğuna bir bakalım. Bir console uygulamasında visual studioda projeye sağ tıklayıp add new item menüsünden classı seçiyorum. Classa bir isim verdikten sonra classı oluşturuyorum.

 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
namespace ConsoleApplication1
{
    class Siparis
    {
 
    }
}

 Yukarıdaki örnekte gördüğünüz gibi sınıf bildirimi "class" sözcüğü ile yapılmıştır. Bir sınıfın içinde o sınıfa ait metotlar ve özellikler bulunur. Sipariş sınıfında SiparisVer() metodu ve  string türünde AdSoyad adındaki bir değişken siparis sınıfının elemanlarıdır. Aşağıda bunun örneğini görüyorsunuz.

class Siparis
    {
        string AdSoyad;
        string Email;
        string Telefon;
 
        private void SiparisVer()
        {
 
        }
    }

Bir sipariş olayında siparişi veren kişinin adını, telefonunu, email adresini gibi çeşitli bilgilerini tutma ihtiyacımız vardır. Bu bilgileri SiparisVer() metodunda kullanıp veritabanında saklayabiliriz. SiparisVer() metodunu programın ana ekranından ya da başka bir sınıf içinden çağırabilmemiz için bu metodun "public" yani "dışarıdan erişime açık" olarak ayarlanması gerekir. Aksi takdirde varsayılan olarak "private" ayarı geçerlidir ve yalnızca o sınıf içinden erişilir. Aynı şekilde sipariş veren kişinin bilgilerine de dışarıdan erişebilmemiz için public olarak ayarlanması gerekir. Örneğimizi biraz genişletelim

class Siparis
    {
        public string m_AdSoyad;
        public string m_Email;
        public string m_Telefon;
 
        public void SiparisVer()
        {
            Kaydet(m_AdSoyad, m_Email, m_Telefon);
        }
 
        private void Kaydet(string AdSoyad, string Email, string Telefon)
        {
 
        }
    }

Yukarıda siparis sınıfının özelliklerinin başına m_ harfi getirmemin sebebi bu ifadenin bu classın bir member üyesi olduğunu belirtmiş olmamdır. SiparisVer() metodu da sınıf içinde private olarak tanımlanmış olan Kaydet() metodunu çağırarak bu verilerin veritabanına kaydedileceğini düşünebilirsiniz.

Son olarak oluşturduğum classı programımın Main metodu içerisinden çağırıyorum. Siparis s = new Siparis() yazdığımız zaman new constructorı ile sınıfımız içindeki özelliklere ilk değer ataması yapıldığını hatırlatalım. Ardından nesnemizin adını yazıp "." ile nesnemiz içindeki public özelliğinde olan metotlara ve özelliklere erişebiliyoruz.

class Program
    {
        static void Main(string[] args)
        {
            Siparis s = new Siparis();
            s.m_AdSoyad = "Emre KIYAK";
            s.m_Email = "mail@emrekiyak.com";
            s.m_Telefon = "0216xxx-xx-xx";
 
            s.SiparisVer();
 
        }
    }
 
İlerleyen makalelerde bir sınıf içerisinde metot ve özelliklerin daha etkili, verimli bir şekilde nasıl kullanıldığını göreceksiniz.

11 Aralık 2009 Cuma öğleden sonra 17:17

Mesajınızı yazabilirsiniz


Rumuz :  
 
Email :   
  
Mesaj :  
Bu konuya abone olmak ister misiniz ?

Güvenlik kodunu göremiyorsanız sayfayı yenileyin.
Güvenlik Kodu :