Nesne Nedir? – Java Dersleri

0
688
Nesne Nedir? Java Programalam Dili Nesne Nedir?
Nesne Nedir? Java Programalam Dili Nesne Nedir?

Nesneler, nesneye yönelimli teknolojiyi anlamak için anahtardır. Şimdi etrafınıza bakın ve köpeğiniz, televizyon konsolunuz ve bisikletiniz gibi pek çok gerçek dünya nesnelerinin örneklerini bulacaksınız.

Gerçek dünya nesneleri iki özelliği paylaşır: Onların hepsi durum (state) ve davranışa (behavior) sahiptir. Köpekler, durum (isim, renk, cins, acıkmış) ve davranışa (havlama, gidip alma, kuyruk sallama) sahiptir. Ayrıca, bisikletlerde durum (mevcut vites, mevcut pedal ritmi, mevcut huz) ve davranış (vites değiştirme, pedal ritmini değiştirme, fren uygulama) bulunur. Gerçek dünyadaki nesneler için durum (state) ve davranış (behavior) belirlemek, nesneye yönelik programlama açısından düşünmeye başlamak için harika bir yoldur.

Hemen yakın çevrenizdeki gerçek dünyadaki nesneleri gözlemlemek için bir dakikanınızı ayırın. Gördüğünüz her bir obje için, kendinize iki soru sorun: “Bu nesne hangi olası durumlar içinde olabilir?” ve “Bu nesne hangi olası davranışı yapabilir?”. Gözlemlerinizi yazdığınızdan emin olun. Yaptığınız gibi, gerçek dünyada nesnelerin karmaşıklık bakımından farklı olduğunu fark edeceksiniz; Masaüstü lambanız sadece iki muhtemel duruma (açık ve kapalı) ve iki muhtemel davranışa (açmak, kapatmak) olabilir, fakat masaüstü radyonuz ek olarak durumlara (açık, kapalı, mevcut ses, mevcut istasyon) ve davranışlara (açmak, kaaptmak, sesi yükseltmek, ses, düşürmek, aramak, taramak ve istasyonu ayarlamak) olabilir. Ayrıca bazı nesnelerin de başka nesneler içerdiğini de fark edebilirsiniz. Bu gerçek dünya gözlemlerinin hepsi nesne yönelimli programlama dünyasına dönüşmektedir.

Bir yazılım nesnesi

Yazılım nesneleri kavramsal olarak gerçek dünyadaki nesnelere benzerdir. Onlar da, durum ve ilgili davranışlardan oluşur. Bir nesne, alanlarında (fields)(bazı programlama dillerinde değişkenler(variables)) onun durumunu içerir/hafızaya alır ve metotları (bazı programlama dillerinde fonksiyonlar (functions)) sayesinde onun davranışını gösterir. Metotlar, bir nesnenin iç durumunu etkiler ve nesneden nesneye iletişim için birincil mekanizma gibi hizmet verir. İç durumu (hiding internal) gizleme ve tüm etkileşimin bir nesnenin metotları sayesinde gerçekleştirilmesini gerektiren, nesne yönelimli programlamanın temek prensibi, veri kapsülleme (data encapsulation) olarak bilir.

Bir bisiklet düşünün, örneğin:

Bir yazılım nesnesi gibi modellenmiş bir bisiklet

Durumu (mevcut hız, mevcut pedal ritmi ve mevcut vites) ilişkilendirerek ve durumu değiştirmek için metotlar sağlayarak, nesne, dış dünyanın bunu nasıl kullanmasına izin verildiğinin kontrolü altındadır. Örneğin, bisiklet sadece 6 vitese sahipse, vitesleri değiştirme metotu 1 den küçük veya 6 dan büyük herhangi bir değeri kabul etmeyebilir/reddedebilir.

Birbirinden ayrı yazılım nesneleri içerinde kodun paketlenmesi aşağıdaki birçok avantajı sağlar.

  1. Modülerlik (Modularity): Bir nesnenin kaynak kodu, başka nesnelerin kaynak kodundan bağımsız olarak yazılabilir ve korunabilir. Oluşturulur oluşturulmaz nesne, sistemin içinden kolayca geçebilir.
  2. Bilgi Gizleme (Information-hiding): Yalnızca bir nesnenin metotlarıyla etkileşimde bulunarak, onun iç uygulamasının ayrıntıları dış dünyadan gizli kalır.
  3. Yeniden Kullanılabilir Kod (Code re-use): Bir nesne zaten varsa ( belki başka yazılım geliştirici tarafından yazılmış ), programınızda nesneyi kullanabilirsiniz. Bu, uzmanların, kendi kodlarında çalıştırmak için güvenebileceği karmaşık, göreve özgü nesneleri uygulamalarına/test etmelerine/hata ayıklamalarına izin verir.
  4. Takılabilir (tak-çıkar) ve Hata Ayıklama Kolaylığı (Pluggability and debugging ease:): Belirli bir nesnenin sorunlu olduğu ortaya çıkarsa, nesneyi uygulamanızdan kaldırabilir ve onun yerine farklı bir nesne doldurabilirsiniz. Bu gerçek dünyadaki mekanik sorunların tamir edilmesine benzerdir. Bir cıvata kırılırsa, onu değiştirin, tüm makineyi değil.

Bu yazı Oracle Java Dökümanı kullanılarak İngilizceden Türkçeye çevrilmiştir. Sadece kaynak göstererek kullanabilirsiniz.

Çeviri Yapılan Bölüm Linki

CEVAP VER

Lütfen yorumunuzu giriniz!
Lütfen isminizi buraya giriniz