Java Nesne Programlama – 1 – Giriş

Uzun zamandır hem tekrar ediyim hem de herkes anlasın diye java da nesne programlama ile ilgili yazılar yazıcaktım ve ilerlemeler yapıcaktım.

Şimdi ise yazılara başlıyorum..

İlk olarak nesne programlama’ya girmeden nesne nedir, sınıf nedir bunların tanımı ile başlama istiyorum..

  1. Nesne ve Sınıf Nedir ?

Nesne kısaca herşeydir. Etrafta gördüğümüz ve adlandırdığımız herşey’e nesne diyebiliriz. Örnek olarak ;

Bilgisayarınız bir nesnedir. Bilgisayarınızın en, boy, kalınlık gibi bir sürü özelliği vardır. Bilgisayarınızın ek olarak müzik çalma, oyun oynama gibi fonksiyonları vardır. Siz örnekleri telefon, araba, ev vs olarak çoğaltabilir ve zihninizde canlandırabilirsiniz. Bilgisayarınızın modeli “X” olsun. Kullanmış olduğunuz “X” model bilgisayarınızdan dünyada milyonlarca üretilmiştir. Sizdeki üretilen modellerden yalnızca birisidir. Diğer üretilmiş “X” modeller ile de aynı özelliklere sahiptir. İşte buradanda yola çıkarsak kullanmış olduğunuz “X” model bilgisayarınız sizin nesneniz, Üretilen “X” model ise sınıfınızdır.

Tanım olarak ise; Nesneler, belirli sınıfa ait olan ve o sınıfın imkanlarını kullanan veri tipleridir. Veri tipi anlamından ise nasıl int bir veri tipiyse bizimkide kullanabildiğimiz bir veri tipidir.

 

Nesnelerin 2 temel özelliği bulunmaktadır. Özellik ve Davranıştır..

Bir nesnenin durumu özellikleri olarak bilinen veri alanlarıdır.

Bir nesnenin davranışı metotlar kümesi ile tanımlanır

Bir nesne bir sınıfta tanımlanan özellik ve davranışlara sahipse o sınıfa aittir.

Örnekle Anlatıcak olursam ;

Elimizde bir ütümüz olsun. Ütünün markası, modeli, rengi, çalıştığı elektrik voltajı, ne tür kumaşları ütüleyebildiği bu ütüye ait özelliklerdir (veri).

Aynı zamanda ütümüzü ısıtabiliriz, ütüleme işinde kullanabiliriz ve soğumaya bırakabiliriz. Bunlar ise ütünün fonksiyonlarıdır (metot).

Eğer ütü ile ilgili bir program yapmış olsak ve nesne tabanlı programlama tekniğini kullansak hemen bir ütü sınıfı (class) oluştururduk. Bu sınıfta ütüye ait bilgiler (veriler) ve ütü ile yapabileceğimiz işler (metot) bulunurdu. O zaman nesne tabanlı programlamada bir sınıfta, sınıfa ait veriler ve bu verileri işleyip bir takım faydalı sonuçlar üreten fonksiyonlar metotlar bulunur. Dahası, biz bir tane ütü sınıfı tasarlarsak bu sınıftan istediğimiz sayıda değişik ütüler (Object veya instance) yapabiliriz.

 

Bir nesne peki nasıl çağrılır…

sinifAdi nesneAdi = new sinifAdi();

sinifAdi, ilgili sınıfın adıdır. nesneAdi, nesnemizin adıdır. “new sinifAdi();” ifadesi ise nesnemizin oluşturulduğu yerdir. Aslında yalnız bu ifadeyi yazarsanız da nesnemiz bellekte bir yerlerde oluşturulur. Ancak bu nesnemizle ileride işlemler yapacağımız için, belli bir ulaşabileceğimiz adresi olması gerekli. İşte bu adres de “nesneAdi” dediğimiz değişkendir. Bu değişken üzerinden nesnemize ulaşırız ve ilgili işlemleri yaparız.

 

  1. Nesne Yönelimli Programlama Nedir, Neden ihtiyaç duyulur ve 4 Temel Özelliği nedir ?

OOP, yazılım geliştirme sürecinde son derece etkili bir yöntemdir ve günümüz projelerinde vazgeçilmez olmayı sürdürmektedir. Bir yazılım geliştirmenin 3 temel aşaması bulunmaktadır, bunlar Tasarlama, Geliştirme ve Test Etme olarak tanımlanır. İlk aşamanın iyi olması sonucu geliştirme ve test etme süreçleri de hızlı ve doğru-kolay bir şekilde daha rahat gelişir, bu durum da tasarımda OOP?nin kullanılması sonucu gerçekleşebilir.

 

Nesne Tabanlı Programlama’nın 4 Temel Özelliği :

Soyutlama, Paketleme, Kalıtım, Çok biçimlilik

Soyutlama (Abstraction)

Soyutlama gerçekte başlıbaşına varlığı olan bir şeyi, maddesinden sıyırarak, soyarak düşünme, tasarlama; gerçekte ayrılamaz olanı zihinde, düşüncede ayırma işlemi.

Şimdi bunu bir kenara yazdık. Bir örnek üzerinde anlatıcak olursak bir köpek; daha genel bir tanımla “canlı” sınıfındandır. Fakat hiç bir zaman “Canlı koşuyor.” gibi bir cümle kurmayız. Tercihimiz “Köpek koşuyor.” olacaktır. Burada köpek, canlıdan soyutlanmıştır.

OOP yaklaşımında da soyutlama, nesnelerin gerekli özelliklerinin kodlanıp gereksiz özelliklerinin kodlanmaması ile sağlanabilir.

Sarmalama (Encapsulation)

Nesneye yönelik programlamada erişim belirleyiciler vardır ve bu erişim belirleyiciler sınıflar içerisindeki çeşitli özelliklere nerelerden erişilebileceğini belirler. Böylelikle sarmalama ile güvenlik ve kontrol sağlanmış olur.

Kalıtım (Inheritance)

OOP’de bir sınıf  başka bir sınıftan kalıtılmış olabilir. Buna miras alma da denir. Sınıflar arasında soy ağacı gibi bir yapı oluşturulabilir. Böylelikle bazı özellikler her sınıf için ayrı ayrı kodlanmak zorunda kalınmaz ve özellikler miras yolu ile, kalıtılan sınıfa aktarılmış olur. Burada hangi özelliklerin aktarılacağını yine erişim belirleyiciler belirlemektedir.

Çok Biçimlilik (Polymorphism)

Bir kütüphaneyi düşünelim. Kitap bir sınıf. Kitaptan kalıtılan sınıflar ise roman, hikaye, masal olsun. Ben her çeşit kitaptan beşer adet isteyebilirim. Kitap tipinin beklendiği yerde roman kullanabiliyorsam bu çok biçimlilik örneğidir. Biraz kodlama dili ile konuşacak olursam; kitap tipinden yeni bir roman belleğe çıkarmam çok biçimliliktir.

Nesneye Yönelik Programlama Dilleri Nelerdir?

Nesneye yönelik programlama dillerine C++, Objective-C, Python, Visual Basic.Net, Java, C# örnek olarak verilebilir.

 

 

 

Post Author: umiitkose

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Şu HTML etiketlerini ve özelliklerini kullanabilirsiniz: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">