Object Oriented etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
Object Oriented etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

24 Ağustos 2012 Cuma

Java Nedir?

Java Programlamaya Giriş

Sun Microsystems
Java programlama dili Sun Microsystems tarafından ilk olarak 1991 yılında geliştirilmeye başlandı. Java aslında Sun Microsystems'in elektronik ev aletlerinin programlanması amacıyla başlattığı bir projedir. Java dili Patrick Naughton, Chis Wartdh, James Gosling, Ed Frank ve Mike Sheridan'ın oluşturduğu bir yazılım grubu tarafından tasarlanmıştır.
Java
İlk zamanlarda bu dilin adı OAK idi. Ancak bu ada sahip başka bir program olduğu öğrenilince programın ismi Java olarak değiştirildi. Bu ismin bir kahve markasından esinlenerek verildiği söylenir. Aslında Java kahve manasına gelmektedir. Özellikle geceleri uzun çalışma saatlerini bilgisayar başında geçiren programcıların en büyük dostunun kahve olduğunu düşünürsek; programın neden bu ismi aldığı hakkında bir fikir sahibi olabiliriz diye düşünüyorum.

Başta da belirttiğimiz gibi Java elektronik ev aletleri için geliştirilmeye başlanmış bir programlama dilidir. Bu alanda gelişminin çok yavaş olması ve istenen verimin tam olarak alınamaması Java projesini bitme noktasına kadar getirmiştir. Ancak Java dilinin marifetleri sadece elektronik ev aletleri ile sınırlı değildi. Java web uygulamaları geliştirmeye izin veren bir dildir. Özellikle 1993'ten sonra dünyada internet iletişiminde yaşanan patlama Sun Microsystems'in java'nın bu özellikleri üzerne yoğunlaşmasını sağlamış ve adeta bu dilin hayatını kurtarmıştır. İlk kez 1995 yılında dünyaya sunulan Java dili çok ilgi görmüş, özellikle dinamik web sayalafının hazırlanmasında gösterdiği performans ve C++ diline yakın bir kodlama yapısına sahip olması, kolay öğrenilebilir olması gibi nedenler Java dilinin popüler bir yazılım dili olmasını sağlamıştır. Java programlama  dili günümüzde özellikle Google'un Android'i ve Nokia'nın Symbian işletim sistemine temel oluşturması ve bu sistemler için üretilen milyonlarca java uygulaması ile mobil teknolojinin gelişmesini sağlamıştır.

Java hız bakımından C++ ve C dilinin biraz gerisindedir. Aslında bu dilin yazıılma amacı daha doğru ve verimli prgramlar yazmak ve program yazmayı kolaylaştırmaktır. Java Nesne tabanlı ya da Nesne yönelimli(Object Oriented) bir programlama dilidir. Yani bu dilin bileşenlerini aslında nesneler oluşturur. Java'da C ve C++'da olduğu gibi yapısal(Structural)progamlar yazılabilse de java gerçek gücünü Nesnelerle çalışırken gösterir. Şimdi şu nesne konusuna kısa bir açıklama yapalım

Nesneye Yönelik Programlama

Tornavida

İlk olarak kendi kendimize soralım. Nesne nedir? Nesneler, çevremizde bulunan, duyu organları ile algılayabildiğimiz; çeşitli özellikleri(renk, koku, tat,boyut ve ağırlık gibi) ve işlevleri(birşey kesmek, bir yere destek olmak, birşey üretmek, hesaplamak vs) olan varlıklardır. Mesela sol resimdeki tornavidayı düşünün. Bu tornavidanın sarı renkli plastik sapı, parlak metal ucu ve düz ağzı sahip olduğu özellikleridir. Bu tornavida ile düz vidaları sıkıp gevşetebilmesi, tornavida nesnesinin işlevi olarak tanımlaabilir.


Düz tornavida ile yıldız başlı vidaları sıkıp gevşetemezsiniz. Yani düz ağızlı tornavidanın bu noktada işlevsel sınırlılığı var. Bu sınırlılık tornavidanın sahip olduğu özelliklerle ilgilidir ve bu özellikler üretim esnasında belirlenir. Bu tornavidayı tamirat yaparken defalarca kullanabilirsiniz. Tornavida her defasında aynı şekilde çalışır ve aynı hizmeti verir. Ayrıca bu tornavidayı özelliklerini bilen başka biri ya da birileri ile ortaklaşa da kullanabilirsiniz.

Buraya kadar gerçek hayattaki nesnelerden bahsettik. Yazılım dünyasında bahsedilen nesne kavramı da aynı şekilde işlemektedir. Yani Nesneye Yönelik programlama yaparken aynı gerçek hayatta bir tornavidayı imal eder gibi programda kullanacağınız nesneleri inşa edersiniz. Ona çeşitli özellikler verirsiniz, işllevler verirsiniz. Sonra da programda gerektiği yerlerde o nesneyi çalışması için çağırırsınız. Aynen lazım olduğunda tornavidayı alıp kullandığınız gibi üretilen nesneleri çağırıp kullanabilirsiniz. Aynı proje üzerinde birden fazla kişinin çalıştığını düşünün. Tornavidayı nasıl çalışma arkadaşınızla ortaklaşa kullanabiliyorsanız, aynı proje içinde üretilen bir nesne de o şekilde ortaklaşa kullanılabilir.

Nesneye yönelik programlamanın mantığı bu şekildedir diyebiliriz. Java'da ürettiğiniz nesneler, çeşitli değişkenler ve method adı verilen fonksiyonlardan oluşur. Nesne içindeki değişkenlerin erişim türleri(public veya protected gibi) yazılımcı tarafından belirlenebilir. Böylelikle bir nesneye ait değişkenlerin değerlerinin yanlışlıkla değiştirilmesi engellenmiş olur. Buraya kadar saydıklarımız Nesneye Yönelik (Object Oriented) programlamanın avantajlarından sadece birkaçıdır.


Turgut Arslan