Object Oriented Programming (OOP) (Nesne Yönelimli Programlama), yetmişli yıllarda gelişmeye başlayan bir yazılım geliştirme tekniği olmakla birlikte bugün hemen tüm programlama dillerinde artık standart olarak kullanılmaktadır. Özellikle gerçek yaşan senaryolarını içeren büyük ölçekli programlarda sınıflara ve nesnelere ihtiyaç duyarsınız. Örneğin kullanıcıların özelliklerini tutabilmek için sınıflara ve her bir kullanıcıyı da gerektiğinde bir nesne olarak oluşturursunuz.
Sınıflara ihtiyaç duymamızın birçokn nedeni var, ama en basit neden taslaklama ve özellikleri bir arada tutabilmektir. Örneğin bir kullanıcı için gerekli olan bilgiler şunlar olsun:
- kullanıcı adı
- email adresi
- adı
- soyadı
Tüm bu kullanıcı bilgilerini her seferinde farklı öğrenciler için farklı değişkenler olarak oluşturacak olursanız başınıza gelecek olan durum şudur:
- kullaniciadi1, kullaniciadi2,...
Ama sınıf (class) kullanarak tüm bu özellikleri taslak (blueptint) olarak kullanıcı sınıfı olarak belirleyebilirsiniz.
class Kullanici
{
string KullaniciAdi;
string Email;
string Adi;
string Soyadi;
}
Artık her bir kullanıcı yeni bir kullanici nesnesidir ve her bir nesne de sınıfın özelliklerini taşır. Dolayısıyla sınıf nedir tanımlamasını yapacak olursak, sınıfın her bir nesne için bir taslak olduğunu söyleyebiliriz.
Sınıfların özelliklerinin (sınıf değişkenleri) yanı sıra metodları da olabilir. Örneğin önceki örneklerde de kullandığımız Console sınıfının WriteLine metodu aslında Console sınıfı için tanımlanmış bir metoddur ve biz de kendi sınıflarımızda kendi metdodlarımızı tanımlayarak kullanabiliriz.
Sınıflarda kalıtsallık işlemi ile bir sınıfın alt sınıflarını da oluşturabilir ve istediğimiz sınıf özelliklerinin kalıtsallık ile bir alt sınıf tarafından miras alınabilmesini de sağlayabiliriz.
Son olarak nesneyi de bir sınıftan üretilmiş bir örnek olarak düşünebiliriz. Örneğin üstteki sınıfan üretilmiş her bir kullanıcı bir nesnedir, ya da bir araba sınıfından üretilmiş ve özellikleri ile metodları olan her bir araba örneği bir nesnedir.
Önceki yazılarımdan bazıları için;
bkz: C# Switch Case kullanımı ve örnekleri
bkz: C# TryParse metodu kullanımı ve örnekleri
bkz: C# iç içe if kullanımı ve örnekleri
bkz: C# Kullanıcıdan double veri tipinde input almak
bkz: Programlamada metodların static olması ile olmaması arasındaki fark nedir?
bkz: C# ile string'in başına ekleme yapmak (4 farklı çözüm)