Nesne yönelimli programlama: Revizyonlar arasındaki fark

Vikipedi, özgür ansiklopedi
[kontrol edilmiş revizyon][kontrol edilmiş revizyon]
İçerik silindi İçerik eklendi
→‎top: düzeltme AWB ile
Tün (mesaj | katkılar)
kDeğişiklik özeti yok
1. satır: 1. satır:
{{Kaynaksız}}
'''Nesne yönelimli programlama''' ('''NYP'''), (İngilizce: ''Object - Oriented Programming'') özetle bir bilgisayar [[programlama]] yaklaşımıdır. Günümüzde pek çok çağdaş [[programlama dili]] tarafından desteklenmektedir.[[Dosya:UygulamaBakimMaliyeti.PNG|sağ|250px|thumb|NYP'dan önceki uygulamaların bakım maliyeti ve karmaşıklık ilişkisi]]
'''Nesne yönelimli programlama''' ('''NYP'''), (İngilizce: ''Object - Oriented Programming'') özetle bir bilgisayar [[programlama]] yaklaşımıdır. Günümüzde pek çok çağdaş [[programlama dili]] tarafından desteklenmektedir.[[Dosya:UygulamaBakimMaliyeti.PNG|sağ|250px|thumb|NYP'dan önceki uygulamaların bakım maliyeti ve karmaşıklık ilişkisi]]
[[1960]]'lı yılların sonuna doğru ortaya çıkan bu yaklaşım, o dönemin yazılım dünyasında beliren bir bunalımın sonucudur. Yazılımların karmaşıklığı ve boyutları sürekli artıyor, ancak belli bir nitelik düzeyi korumak için gereken bakımın maliyeti zaman ve çaba olarak daha da hızlı artıyordu. NYP'yi bu soruna karşı bir çözüm haline getiren başlıca özelliği, yazılımda birimselliği (modularity) benimsemesidir. NYP ayrıca, [[bilgi]] gizleme (information hiding), [[veri soyutlama]] (data abstraction), [[çok biçimlilik]] (polymorphism) ve [[kalıtım (programlama)|kalıtım]] (inheritance) gibi yazılımın bakımını ve aynı yazılım üzerinde birden fazla kişinin çalışmasını kolaylaştıran kavramları da yazılım literatürüne kazandırmıştır. Sağladığı bu avantajlardan dolayı, NYP günümüzde geniş çaplı yazılım projelerinde yaygın olarak kullanılmaktadır.
[[1960]]'lı yılların sonuna doğru ortaya çıkan bu yaklaşım, o dönemin yazılım dünyasında beliren bir bunalımın sonucudur. Yazılımların karmaşıklığı ve boyutları sürekli artıyor, ancak belli bir nitelik düzeyi korumak için gereken bakımın maliyeti zaman ve çaba olarak daha da hızlı artıyordu. NYP'yi bu soruna karşı bir çözüm haline getiren başlıca özelliği, yazılımda birimselliği (modularity) benimsemesidir. NYP ayrıca, [[bilgi]] gizleme (information hiding), [[veri soyutlama]] (data abstraction), [[çok biçimlilik]] (polymorphism) ve [[kalıtım (programlama)|kalıtım]] (inheritance) gibi yazılımın bakımını ve aynı yazılım üzerinde birden fazla kişinin çalışmasını kolaylaştıran kavramları da yazılım literatürüne kazandırmıştır. Sağladığı bu avantajlardan dolayı, NYP günümüzde geniş çaplı yazılım projelerinde yaygın olarak kullanılmaktadır.
26. satır: 27. satır:
== Dış bağlantılar ==
== Dış bağlantılar ==
* [http://ninova.itu.edu.tr/tr/dersler/elektrik-elektronik-fakultesi/21/blg-252e/ İTÜ Ninova Açık Ders Malzemeleri], Nesne Yönelimli Programlama
* [http://ninova.itu.edu.tr/tr/dersler/elektrik-elektronik-fakultesi/21/blg-252e/ İTÜ Ninova Açık Ders Malzemeleri], Nesne Yönelimli Programlama
* [http://www.mmistanbul.com/ders/section/tags/etiket/oop/tag/1752/ Actionscript ve Nesne Yönelimli Programlama (OOP)] (Türkçe)
* [http://www.mmistanbul.com/ders/section/tags/etiket/oop/tag/1752/ Actionscript ve Nesne Yönelimli Programlama (OOP)]{{Ölü bağlantı}} (Türkçe)


{{bilgisayar bilimi}}
{{bilgisayar bilimi}}
{{Otorite kontrolü}}


[[Kategori:Nesne yönelimli programlama]]
[[Kategori:Nesne yönelimli programlama]]

Sayfanın 21.49, 3 Şubat 2020 tarihindeki hâli

Nesne yönelimli programlama (NYP), (İngilizce: Object - Oriented Programming) özetle bir bilgisayar programlama yaklaşımıdır. Günümüzde pek çok çağdaş programlama dili tarafından desteklenmektedir.

NYP'dan önceki uygulamaların bakım maliyeti ve karmaşıklık ilişkisi

1960'lı yılların sonuna doğru ortaya çıkan bu yaklaşım, o dönemin yazılım dünyasında beliren bir bunalımın sonucudur. Yazılımların karmaşıklığı ve boyutları sürekli artıyor, ancak belli bir nitelik düzeyi korumak için gereken bakımın maliyeti zaman ve çaba olarak daha da hızlı artıyordu. NYP'yi bu soruna karşı bir çözüm haline getiren başlıca özelliği, yazılımda birimselliği (modularity) benimsemesidir. NYP ayrıca, bilgi gizleme (information hiding), veri soyutlama (data abstraction), çok biçimlilik (polymorphism) ve kalıtım (inheritance) gibi yazılımın bakımını ve aynı yazılım üzerinde birden fazla kişinin çalışmasını kolaylaştıran kavramları da yazılım literatürüne kazandırmıştır. Sağladığı bu avantajlardan dolayı, NYP günümüzde geniş çaplı yazılım projelerinde yaygın olarak kullanılmaktadır.

NYP'nin altında yatan birimselliğin ana fikri, her bilgisayar programının (izlence), etkileşim içerisinde olan birimler veya nesneler kümesinden oluştuğu varsayımıdır. Bu nesnelerin her biri, kendi içerisinde veri işleyebilir, ve diğer nesneler ile çift yönlü veri alışverişinde bulunabilir. Hâlbuki NYP'den önce var olan tek yaklaşımda (Yordamsal programlama), programlar sadece bir komut dizisi veya birer işlev (fonksiyon) kümesi olarak görülmektedirler.

Günümüzde çok çeşitli nesne tabanlı programlama dilleri olmasıyla beraber, en popüler diller sınıflar üzerine kurulmuşlardır (class-based). Bu dillerde nesneler sınıfların birer üyesidir ve nesnelerin tipini de bu sınıflar belirlerler.

En yaygın NYP dillerinden bazıları, PythonC++Objective-CSmalltalkDelphiJavaSwiftC#PerlRuby ve PHP' dir.

Nesne yönelimli programlama dilleri yukarıda adı geçen tüm ögelere sahip olurken, Ada, JavaScript, Visual Basic gibi nesne tabanlı programlama dilleri birkaçından yoksundur, bu dillerin başlıca yoksunluğu kalıtıma sahip olmamalarıdır.

Nesneler ve sınıflar

NYP'yi destekleyen programlama dilleri genellikle tekrar kullanım ve genişletilebilirlik açısından, prototipler ve sınıflar şeklinde kod kalıtımına sahiptirler ve NYP deki nesneler kimi zaman gerçek dünyada bulunan şeylere karşılık gelebilir. Mesela bir grafik programı "kare", "üçgen" ve "yuvarlak" gibi nesnelere sahip olabilir. Bazen nesneler daha soyut şeyleri de temsil edebilirler, mesela bir hesap makinesi programı logaritma almanızı ya da metreyi fite çevirmenizi sağlayacak nesnelere sahip olabilir. İşte bu bahsi geçen nesneler belli sınıflar altında bulunurlar, mesela "Kasım" adında bir nesne Aylar sınıfının bir üyesi olabilir ya da "Faktöriyel" olarak isimlendirilmiş bir nesne Fonksiyonlar sınıfında yer alıyor olabilir.

Kaynakça

Ayrıca bakınız

Dış bağlantılar