twitter
    Find out what I'm doing, Follow Me :)

Javada Nesneye Yönelik Programlama

Java nesneye yönelik bir programlama dilidir. Nesneler ; değişkenler , methodlar içerir. Her nesnenin kendine ait özellikleri vardır. Bu nedenle javada da oluşturulan her nesne için değişkenler ve methodlar tanımlanır. Sınıf statik nesne ise dinamiktir.
Javada nesneler sınıflar kullanılarak oluşturulur. Örneğin Kisi classımızdan üreteceğimiz bir nesneyi ;
Kisi  kisi = new Kisi ();
şeklinde oluşturabiliriz.
Nesneler program run edildiğinde yaptığımız tanıma göre yani constructora göre dinamik olarak yaratılırlar.Constructor yapılandırıcı anlamındadır ve nesne oluştururken yaptığımız tanıma göre nesne oluşturmamızı sağlar.







Yazdığımız her classın mutlaka bir yapılandırıcısı vardır. Ayrı bir yapılandırıcı belirtmediğimiz durumda java parametresiz olan yapılandırıcıyı kullanmaktadır.

Sınıfların içerisinde belirtilen alanların erişim belirleyicileri önemlidir. Örneğin bu örnekte değişkenlerin erişim belirleyicileri privatedır.Private erişim belirleyicisine sahip olan değişkenlere yalnızca o sınıf içersinden erişilebilir. Bu sınıftan üretilen nesnede private alanlara erişilemez. Public erişim belirleyicisine ise üretilen nesnelerden ve diğer classlardan erişim sağlanabilir. Protected erişim belirleyicisi bu iki erişim belirleyici arasında olup , bir özellik veya metodun dışarıya kapalı olmasını ancak o sınıftan türeyenlere açık olması durumunda kullanılır.

Yazdığımız her class değişkenlerden ve methodlardan oluşmaktadır. Bu alanlara ve methodlara erişimin sınırlanması için encapsulation kullanılmaktadır. Private erişim belirleyicisi kullanılan data alanlarına erişmek için ise Getter ve Setter yöntemleri kullanılmaktadır.


Bu Kisi sınıfımızdan nesne üretmek isteidigimizde main classta istediğimiz constructor yapısına göre nesne oluşturabiliriz.

Kalıtım (inheritance) ; nesneye yönelik programlamanın en önemli özelliklerindendir. Bir class ın sahip olduğu özellikleri aynen  alıp veya değişitirp kullanmamızı sağlar. Böylece gereksiz kod yazımını önler.Örneğin bir Ogrenci classı yazalım. Bu classta  ad ,soyad , numara gibi özellikler bulunur. Ad ve soyad daha önceden yaptıgımız Kisi classında da bulunmaktadır ve Ogrenci de bir Kisidir. Bu nedenle Ogrenci classımızı Kisi sınıfından kalıtım alarak oluşturabiliriz. Burada kalıtım alınan Kisi sınıfı bir super sınıf , kalıtımla özellikleri alan class ise alt sınıf olmaktadır. Bir alt sınıf üst sınıf ile aynı özellikleri bulundurabileceği gibi , bu özellikler dışında başka özelliklere de sahip  olup bunları değiştirebilmektedir.

Ogrenci sınıfı Kisi sınıfından extends kelimesiyle kalıtım almaktadır. Kisi sınıfından farklı olarak numara değişkeni tanımlanmıstır. Parametreli ve parametresiz 2 yapılandırıcı da yazılmıştır. Burada yapılandırıcıda Kisi sınıfının methodları olan setAd() ve setSoyad() methodları kullanılmıstır. Bu şekilde ad ve soyad data alanlarınıa atamalr yapılmıştır. Bunun yerine ise super() ; yazılarak üst sınıfın sahip olduğu atamalar direk alınabilir.

Polimorphizm (çok biçimlilik) bir nesnenin farklı nesneler gibi davranabilmesidir. Yani Ogrencinin aynı zamanda Kisi olmasıdır.Bunu aşagıdaki bulunan BilgileriGoster() fonksiyonunda görebiliriz. Parametre olarak Kisi alan fonksiyona parametre Ogrenci göndererek çok biçimliliğe örnek olmuştur.




Abstract (soyut) sınıflar ; kendisinden nesne oluşturulamayan sınıflardır. En az bir yöntemi soyut olmalıdır.

Abstract sınıfların özellikleri
1) Soyut sınıflardan türeyen sınıf da soyut olabilir.
2) Bir sınıfın soyut olması için en az bir yönteminin soyut olması gerekir.
3) Bir sınıfın constructorı ve static yöntemleri soyut olarak kullanılamaz.
4) Soyut sınıftan türeyen ve soyut olamayan sınıflar soyut yöntemin içini doldurmak zorundadır.


Kalıtımla alınan methodları değiştirerek kullanmak için bu methodlar override edilir. Ancak bazı methodlar override edilemez. Örneğin final yöntemler ,static ve final yöntemler override edilemezler.

Interface (ara birim ) ; sabit değişkenlerden ve soyut yöntemlerden oluşan ve classlara benzeyen yapılardır.Soyut sınıflara benzerler anca soyut sınıflarda soyut olmayan yöntemler de bulunudugundan birbirlerinden farklıdırlar. Ara birim aralarında hiç bir ilişki olamayan ancak benzer olan özellikleri kullanmayı sağlar.

Kalıtım ile gereksiz kod yazımı engellenir. Oluşturulan bir classtan birçok nesne oluşturulur. Yazdığımız bir programın güncellenmeye ve geliştirmeye açık olmasını sağlar.

0 yorum:

Yorum Gönder