Nesne Yönelimli Programlama Nedir | |||||
Bilgisayar mühendisliği 1.sınıfı bitirmiş bir öğrenci yoğun bir şekilde C programlama dili ile meşgul olmuştur. Dolayısıyla nesne yönelimli ifadesine bir hayli yabancı olması pek muhtemeldir. Bu yazı yeni nesil bilgisayar mühendisliği öğrencilerine ve meraklı kimselere yöneliktir.
C diline aşina olduğunuzu varsayarak çıkış noktasını C dili olarak belirleyeceğim. Bildiğiniz üzere C dilinde bir işi sadece main()'de yapabildiğimiz gibi o işi bölümlendirip çeşitli sayıda fonksiyonlara dağıtarak da yapabilmekteyiz. Fark ettiyseniz C'de sürekli fonksiyon yazarız. Hatta farkında mısınız bilmem ama main() de bir fonksiyondur. Nesne yönelimli bir dil olan Java'da ise işler biraz daha farklıdır. Nesne yönelimli derken kasıt şudur: Fonksiyon yönelimli değil, nesne yönelimli. Diğer bir ifadeyle eylem yönelimli değil, nesne yönelimli. Peki nesne yönelimli ne demektir? Bunu bir benzetme(analoji) ile açıklayıp birazcık teknik detay vereceğim. Düşünün ki bir uçak kokpitindesiniz ve bir pilotsunuz. Yıllardan ise 1998. Sizce sizin kumanda edeceğiniz uçağın kokpitinde mesul olduğunuz kaç düğme vardır? Bir sürü değil mi? İşte 98'li yıllardaki uçak kokpiti eylem yönelimli bir kokpittir. Nesne yönelimli bir kokpit nasıldır sizce? Günümüze gelelim. 2014 yılında bir uçağın kokpitinde oturan bir pilotsunuz. Kokpit geçmiş yıllara göre gayet akıllıca tasarlanmış. Çünkü eskiden bir işi yapmak için 10 düğmeyle uğraşırken şimdi bir dokunmatik panel ile aynı işi pratik şekilde yapabiliyorsunuz. Aynı zamanda eskisi gibi etraf düğmeden geçilmiyor değil. Daha sistematik bir düğme azaltmasına gidilmiş ve bu azaltma çeşitli araçlara daha fazla fonksiyonellik katılarak karşılanmış. İşte günümüzün tasarımı, günümüzün dili. Nesne yönelimli programlama. Peki nesne ne demektir? Nesne objedir. Masadır. Sandalyedir. İnsandır. Radyodur. Arabadır. Nesneler dünyasında yaşıyoruz. Gerçek dünyada nesneler ve bu nesnelerin özellikleri, davranışları yer alır. Mesela araba nesnesinin renk, ağırlık, model,... gibi özellikleri vardır. Nesnenin gaz, fren gibi bazı fonksiyonları vardır. Bu araba nesnesini ilerletmek için nesnenin kendisinde olan gaz fonksiyonuna basarız. Nesneyi boyatarak nesnenin kendisinde olan renk özelliğini değiştirmiş oluruz. İşte bu mantık nesne yönelimli programlamada kodlamaya tıpkı bu şekilde yansımıştır. Nesne yönelimli programlamada sınıflar(class'lar), nesne üretmek için bizim "mimari kağıdımızdır". İngilizcede blueprint derler. Yani hani görmüşsünüzdür: Bir bina yapacak inşaat mühendisleri masaya rulo halindeki bir mavi kağıdı açarlar. Planları incelerler. İşte class'da budur. Bu blueprint'ten bir nesne, mesela araba ya da bina oluşturulacaktır. Sınıf ve nesne arasındaki ilişki de budur. Sıra teknik detay vermeye geldi. C dilinde ve Java dilinde "Hello World!" programının kodları aşağıda verilmiştir. C: #include <stdio.h> #include <stdlib.h> int main() { printf("Hello world!n"); return 0; } Java: public class IlkDeneme { public static void main(String[] args) { System.out.println("Hello World"); } } C dilinde bildiğiniz üzere struct blokları vardır. C'nin struct'ı Java'nın class'ına benzer. Ayrıştıkları nokta struct, üye olarak sadece değişken alırken fonksiyon al(a)maz. Class ise değişken gibi fonksiyon(method) da alır. C'de nasıl struct'tan bir değişken türetiyorsak Java'da da sınıftan nesne türetilir. Nesne yönelimli programlamanın sihri sınıflar ve onlardan türetilen nesnelerdir. Bu temel alındığı için büyük projelerde projenin sürdürülebilirliği kat be kat daha iyi olmaktadır. Halbuki c ile büyük bir projeye girişilse zamanla gelişen programın okunurluğu dibi boylayacağı gibi, sürdürülebilirliği gün geçtikçe kan kaybedecektir. Dolayısıyla nesne yönelimli programlama büyük projeler için daha iyidir. Yararlanılan Kaynak: C How To Program - Deitel |
|||||
Bu yazı 24.11.2014 tarihinde, saat 00:30:34'de yazılmıştır. 01.11.2018 tarihi ve 07:37:19 saatinde ise güncellenmiştir. | |||||
|
|||||
Yorumlar |
|||||
|
|||||
|
|||||
|
|||||
|
|||||
Yorum Ekle | |||||