1990-95 yılları arasında Object Pascal, Borland Delphi gibi program dillerinde nesnel programlama mümkün olurken. Java-1.0, 1995 yılında ayrıca applet olanakları ve platformdan bağımsızlığı sağlaması ile çabucak yaygınlaştı. 2013 yılında Java-7.0 kullanmaktayız.
Nesnel programlama tekniği 60'lı yıllardan beri Simula, Smalltalk gibi programlar ile kullanılıyordu fakat sınırlı bir çalışma alanına sahipti(otomasyon). 90'lı yıllara kadar kullandığımız program dilleri arka arkaya gelen procedure'lerden oluşuyordu. Dillerdeki gelişmeler ise yapısal düzenlemeler sağlamaktan ileri gitmemişti.-(structured programming)
Nesnel programlama tekniği biraz da doğadaki yapıyı örnek almıştır. Program bir organizma olarak düşünülürse onu oluşturan her hücre(nesne) bir yapı taşı olarak bilgi saklamayı(data) ve davranışlarını(metod) kendisi belirlemektedir. Hücreler kalıp diyebileceğimiz sınır şartlarını oluşturan(sınıf-class) tipler yardımı ile oluşturulmaktadır. Sinir hücreleri(nesne-object), sinir kalıbından, beyin hücreleri beyin kalıbından oluşturulmaktadır. Her bir nesne kendisine ait renk, uzunluk ve benzer bilgileri içerirken nasıl çoğalacağı, nasıl yok olacağı gibi davranışları da metodlar(altyordam-subroutine) yolu ile bilmektedir. Kalıplar birbirinden geliştirilerek de üretilebilmektedir(kalıtım-inheritance). Bir kalıbın içeriği ile oynamadan yeni metodlar ekleyerek yeni kalıplar ve onunla da yeni nesneler oluşturmak mümkün olmaktadır.
Nesneler ile fare, klavye gibi ortamlar arasında olay iletişimi kurmak (event driven) mümkün olmaktadır. Parmağımıza iğne batsa ilgili hücrelerin uyarılması gibi.
Nesnel programlamada, kütüphaneler ve test edilmiş sağlam yapılar esas alındığı için çok az ekleme yapılarak hata bakımından daha sorunsuz yeni programlar üretmek mümkün olmaktadır.
İngilizce:
https://drive.google.com/file/d/0B1ZLTHm7f6oaQjBhUDByR2dpX3M/edit?usp=sharing
Türkçe Kaynak:
http://tdsoftware.wordpress.com/2011/06/25/java-ile-nesneye-yonelik-programlama-dersleri-pdf/
https://drive.google.com/file/d/0B1ZLTHm7f6oaSFd4a3drMkNDejQ/edit?usp=sharing