20
Kas'13

OOP 1: Nesneye Yönelik Programlamaya Başlangıç (C# ile OOP)

OOP (Object Oriented Programming/Nesneye Yönelik Programlama). Nesneye yönelik programlama, kod içerisinde nesne dediğimiz kavramları kullanarak karmaşıklığın önlemesini amaçlamaktadır. Sınıflardan nesneler türetilir ve yönetilir. Fakat OOP için daha geniş açıklamalara ihtiyaç var.

Neden OOP?

1960’lı yıllarda, geliştirilen yazılımların sadece %5’i gerçekten kullanılabilir durumdaymış. Geriye kalan %95’i ya değişikliğe ihtiyaç duyuyor ya da tamamıyla kullanılamaz yazılımlarmış. Bunun sebebi ise basitçe; “karmaşıklık”. Bu yüzden 1968 yılında yazılım bunalımı bile ilan edilmiş. Yazılımın karmaşıklığı arttıkça uygulama maliyeti katlanarak artıyormuş. Tabiki günümüzde de karmaşıklık, maliyeti artıran önemli unsurlardan.

 

NYP’den önce Uygulama Karmaşıklığı – Bakım Maliyeti Çizelgesi:

UygulamaBakimMaliyeti

Temel olarak, yazılımda karmaşıklığı azaltmak ve yönetimi, değişikliği ve bakımı daha iyi yapılabilen programlar üretmek için geliştirilen OOP bu iş için aşağıdaki ilkeleri benimser:

 

– Soyutlama (Abstraction)
– Sarmalama (Encapsulation)
– Kalıtım (Inheritance)
– Çok Biçimlilik (Polymorphism)

Soyutlama (Abstraction)

Soyutlama, bir kavramın bilgi içeriğini azaltma veya indirgeme sürecine denir. Bizler de aslında bir çok şeyi beynimizde soyutlayarak ifade eder ve anlamlandırırız. Örneğin bir köpek; daha genel bir tanımla “canlı” sınıfındandır. Fakat hiç bir zaman “Canlı koşuyor.” gibi bir cümle kurmayız. Tercihimiz “Köpek koşuyor.” olacaktır. Burada köpek, canlıdan soyutlanmıştır.

 

OOP yaklaşımında da soyutlama, nesnelerin gerekli özelliklerinin kodlanıp gereksiz özelliklerinin kodlanmaması ile sağlanabilir.

Sarmalama (Encapsulation)

Nesneye yönelik programlamada erişim belirleyiciler vardır ve bu erişim belirleyiciler sınıflar içerisindeki çeşitli özelliklere nerelerden erişilebileceğini belirler. Böylelikle sarmalama ile güvenlik ve kontrol sağlanmış olur.

Kalıtım (Inheritance)

OOP’de bir sınıf  başka bir sınıftan kalıtılmış olabilir. Buna miras alma da denir. Sınıflar arasında soy ağacı gibi bir yapı oluşturulabilir. Böylelikle bazı özellikler her sınıf için ayrı ayrı kodlanmak zorunda kalınmaz ve özellikler miras yolu ile, kalıtılan sınıfa aktarılmış olur. Burada hangi özelliklerin aktarılacağını yine erişim belirleyiciler belirlemektedir.

Çok Biçimlilik (Polymorphism)

Bir kütüphaneyi düşünelim. Kitap bir sınıf. Kitaptan kalıtılan sınıflar ise roman, hikaye, masal olsun. Ben her çeşit kitaptan beşer adet isteyebilirim. Kitap tipinin beklendiği yerde roman kullanabiliyorsam bu çok biçimlilik örneğidir. Biraz kodlama dili ile konuşacak olursam; kitap tipinden yeni bir roman belleğe çıkarmam çok biçimliliktir.

Nesneye Yönelik Programlama Dilleri Nelerdir?

Nesneye yönelik programlama dillerine C++, Objective-C, Python, Visual Basic.Net, Java, C# örnek olarak verilebilir.

 

İyi Eğlenceler:)

  • Kenan

    Elinize sağlık, gerçekten Çok güzel ve açıklayacı bir biçimde anlatmışsınız.

Yeni makaleleri E-Mail ile takip edin!