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(); } } }
Helal olsun sana . Çok güzel anlatmışsın … Çok araştırma yaptım böyle güzel bi anlatım görmedim .