C#’da Sınıf (Class) Yapısı

C#’da Sınıf (Class) Yapısı

Merhaba,

Bu yazımda sizlere C# programlama dilinde Sınıf (Class) Yapısı hakkında bilgiler vereceğim ve örneklerle açıklamaya çalışacağım.

Sınıf (Class) Yapısı Nedir ?

Sınıf (class) bir nesnenin şeklini tanımlayan bir şablondur. Sınıf, verileri ve bu verileri işleyecek kodları içerir. Sınıf (class), Nesneleri oluşturmak için temel özellikleri içerir. Nesne(object) ‘ler sınıfların birer örneğidirler. Bu durumda sınıf, nesnelerin nasıl inşa edileceğini tanımlayan bir kılavuzdur diyebiliriz. Gerçek hayatta birçok nesne bulunur. Kitap, kalem, TV, araba vs. bunların hepsi birer nesnedir. Programlar için de bu durum farksızdır.Yani hayatımızı modelleyerek programlara aktarabiliriz. İşte bu nesnelerin belirli  özellikleri ve fonksiyonları vardır. Her evin kapısı olması veya her arabanın hareket etmesi gibi. Örneğin yemek kitabı bir sınıftır, bu kitabın yardımıyla yapılacak olan yemekler ise birer nesnedir.

Sınıf (class) soyut bir ifadedir, nesneler oluşuncaya kadar fiziksel olarak bellekte yer almazlar. Sınıfta veriler veri değişkeninde, kod ise fonksiyon değişkeninde saklanır. Veri üyeleri örnek değişkenleri ve statik değişkenleri içerir. Fonksiyon üyeleri ise metot, yapılandırıcı, yok edici, indeksleyici, olaylar, operatörler ve özellikleri içerirler. Şimdi bir sınıfta örnek değişken ve metot nasıl tanımlar bunu anlatmaya çalışayım.

Örnek Değişken Tanımlama

erişim tip değişken1;

Görüldüğü gibi değişkeni tanımlarken sırayla önce erişim türünü, sonra veri tipini en sonunda ise değişken ismini belirtiyoruz.

public class araba
{
public String yakit;// Arabanın yakıt tipi
public int hiz; // Arabanın Maximum hızı 
public String renk; // Arabanın rengi
public String marka; // Arabanın markası
}

Örnek Metot Tanımlama

erişim dönüş-tipi metot1(parametreler){}

Yine metodu tanımlarken öncelikle erişim türünü, daha sonra döndüreceği değerin tipini  (bazen döndürmeyebilir-void) en sonunda ise metodun ismini belirtiyoruz.

 public void arabaInfo() {
            String araba = "Arabanın markası: " + marka + " rengi: " + renk + " yakıt tipi: " + yakit + " maximum hızı: " + hiz;
            System.Console.WriteLine (araba);
        }

Bir sınıfın mantıksal bir bütünlüğünün olması önemlidir. Yani birbiriyle ilişkili bilgilerin bir arada bulunduğu bir sınıf yapısı daha iyi tasarlanmasını sağlar. Birbiriyle alakasız bilgiler sınıf yapısının bozulmasına neden olur. Yani, örneğimizde biz bir araba’nınz özelliklerini listeliyoruz burada 2+1 evin değerlerini girmek mantıksız olacaktır. Tanımlayacağımız sınıfın özelliklerini, doğru tanımlamamız yazdığımız programın doğru çalışmasını sağlayacaktır.

Peki burada bahsedilen erişim belirteçleri nedir, ne işe yarar? Bunlara daha sonra değineceğiz ama kısaca private; sınıf üyelerini kendi sınıfına özel erişime,public ise tüm sınıflardan erişime açık olarak tanımlar. Erişim belirteci opsiyonel bir belirteçtir. Kullanılmaması halinde metot varsayılan olarak private olur.

Sınıf tanımı, yeni bir veri tipi oluşturur. Yani biz nasıl Integer(int) sınıfından bir değişken tanımlaya biliyorsak, kendi oluşturduğumuz sınıfları da veri tipi olarak kullanabiliriz. Bir sonraki yazıda yeni bir nesne tanımlarken Tasit veri tipinde tanımlayacağız.

En basit haliyle bir sınıf yapısı aşağıdaki örnekte gösterilmektedir. Nesne yönelimli programlamada kapsülleme ve yapılandırıcı gibi konulara daha değinmediğim için kodları daha basit yazmaya çalıştım. Önerilen kod yazımı bu değildir. 

namespace OOP
{
public class Tasit
{
public String yakit;// Taşıtın yakıt tipi
public int hiz; // Taşıtın Maximum hızı 
public String renk; // Taşıtın rengi
public String marka; // Taşıtın markası
// Taşıtın bilgilerini ekrana yazdıran metot
public void tasitInfo() {
String tasit = "Taşıtın markası: " + marka + " rengi: " + renk + " yakıt tipi: " + yakit + " maximum hızı: " + hiz;
System.Console.WriteLine (tasit);
}
}
class MainClass
{
public static void Main (string[] args)
{
// Taşıt tipinden otomobil nesnesini oluşturuyoruz
Tasit otomobil = new Tasit ();
// nesnemize özellik değerlerini giriyoruz
otomobil.hiz = 220;
otomobil.yakit = "LPG";
otomobil.renk = "Siyah";
otomobil.marka = "Renault";
// Bilgileri ekrana yazdıracak metodu çağırıyoruz
otomobil.tasitInfo();
}
}
}

Umarım yazı açıklayıcı ve anlaşılır olmuştur. Elimden geldiğince basite indirgemeye ve örneklendirmeye çalıştım. Bir sonra ki C# yazımda görüşmek üzere, kolay gelsin.