C#

C# Sınıf Yapısı

Sınıf (class) bir nesnenin şeklini tanımlayan bir şablondur. Sınıf, verileri ve bu verileri işleyecek kodu içerir. Sınıf 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. Program 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 arabanın kapısı olması veya 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 soyut bir ifadedir, nesneler oluşuncaya kadar fiziksel olarak bellekte yer almazlar. Sınıfta veriler veri üyelerinde(değişken), kod ise fonksiyon üyelerinde 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 görelim.

// ö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 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ı

	}

// ö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(döndürmeyebilir-void) en sonunda ise metodun ismini belirtiyoruz.

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

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.

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();

		}
	}
}

 

1 Yorum

  • Helal olsun sana . Çok güzel anlatmışsın … Çok araştırma yaptım böyle güzel bi anlatım görmedim .

Süleyman Özdemir için bir yanıt yazın X