Sunday, January 10, 2016

Nesne Yönelimli Programlama (NYP) Temel Kavramlar - Object Oriented Programming (OOP) Basic Consepts

NYP'nin en temel kavramları şunlardır:

1. Soyutlama (Abstraction): Soyutlama günlük hayatta hayatı yaşanabilir kılan en önemli olgulardan biridir. Kavram olarak karmaşıklığın gizlenmesini ifade eder. Bu kavramı anlatmak için en güzel örnek yine insanın kendisi olacaktır. Bilindiği üzere insan yaşamını sürdürmek için kan dolaşımını sağlamalı, düşünmeli, görmeli, anlamalı vb. bir çok fiziki ve mental işlemleri gerçekleştirmelidir. Bunların yapılabilmesi aslında birçok iç işleyişin, mantıksal hesaplamanın ve kurgunun sonucudur. Fakat insan bunların çoğundan direk olarak haberdar olmaz. Sürekli kalp atışını duymanın ne kadar çekilmez bir şey olacağı konusunda sanırım herkes hemfikir olacaktır.

2. Kapsülleme (Öz-Kapsülleme) (Encapsulation) : Kavram olarak soyutlamanın bir alt kümesidir. Bazı kaynaklarda bilgi saklama (Information Hiding) olarak da tanımlanmaktadır. Kelime olarak incelendiğinde "capsulation" (kapsülleme) ve iç içelik anlamı katan "en" eki ile oluşturulmuştur. Yani Türkçe'ye çevirirken "Öz-Kapsülleme" olarak çevrilmesi daha doğru olacaktır. NYP'de iç işleyişle alakalı olup dışarı sunulmasına gerek olmayan öğelerin gizlenmesi anlamında kullanılmaktadır. Yukarıdaki örnekle paralel bir örnek vermek gerekirse, insanların saydam olmamasının çok önemli bir şey olduğu konusunda da sanırım herkes hemfikir olacaktır.

3. Kalıtım (Inheritance): Eski programlama dillerinin en önemli dezavantajlarından biri yeniden kullanılabilirlik özelliklerinin düşük olmasıdır. Bu durum geliştirilen yazılımların bakım maliyetlerini büyük ölçüde artırmaktadır. Kalıtım kelime olarak ebeveyn öğenin özelliklerini çocuk öğelere iletmesi manasına gelmektedir. Klasik bir örnekle anlatmak gerekirse her memeli bir hayvandır. Burada her memelinin hayvan olarak tanımlanması genelleme (generalization) olarak isimlendirilmektedir. Bilindiği üzere her memeli yemek, içmek ve uyumak gibi ortak aktiviteleri ve özellikleri paylaşır.

4. Çok Biçimlilik (Polymorphism): Tek bir arayüz üzerinden değişik tipdeki öğelerin özelliklerinin kullanılabilmesini ifade eder. NYP'de ençok karşılaşılan çok biçimlilik örnekleri ebeveyn öğenin çocuk öğelerin yerine kullanılmasında veya arayüz (interface) kullanılmasında ortaya çıkar.













1 comment: