SINIFLAR VE METOTLAR DERS-11

 

SINIFLAR VE METOTLAR

Java “nesnesel”, diğer bir deyişle “nesne-tabanlı” bir programlama dilidir. Günümüzde programlama alanında nesnesel diller tercih edilmektedir ve bilgisayar programlama dilleri genelde nesnesel olarak tasarlanmaktadır.

Nesnesel dillerin en temel özelliği, programların yapısal öbekler ve iş süreçleri çevresinde değil, nesneler etrafında geliştirilmesine imkan sağlamasıdır. Yazılım gerçek dünyaya ait problemlerin bilgisayarda gösterimi ve çözülmesi ile ilgilidir. Gerçek dünyada her şey nesneler ve nesnelerin işlenmesi ( değişimi ) ile ilgilidir. Bu sebeple programların da nesnelerin tanımı ( sınıflar ) ve nesnelerin işlenmeleri ( metotlar ) çerçevesinde oluşturulmaları, programların daha kolay geliştirilmesini sağlayacaktır.

Kısaca nesnesel dillerle program geliştirme genelde şu aşamalardan geçer:

  1. Nesnelerin ortak özelliklerinin sınıf yapıları kullanılarak tanımlanması ( class ), bu yapılar içerisinde nesne özelliklerinin ( alanlar ) ve nesneleri işleyen metotların tanımlanması
  2. Tanımlı sınıfları kullanarak nesnelerin oluşturulması, bu nesnelerle problemlerin çözümü.

Nesneler etrafımızda bulunan her şeydir; Cisimler, kayıtlar, resimler, araçlar. Sınıf, cins nesnelerin genel tanımıdır. Örneğin, elinizdeki kitap bir nesnedir, diğer derslerde kullandığınız fizik, matematik, İngilizce kitaplarının her biri ayrı bir nesnedir ve bu nesnelerin hepsi bir sınıf ile tanımlanabilir, kitap sınıfı. Aynı sınıfa ait nesneler, ortak özelliklere sahiptirler, fakat bu özellikler her bir nesne için farklılık gösterebilir. Örneğin kitap sınıfı için kitap nesneleri şu ortak özelliklere sahiptir: kitabın adı, yazarları, yayıncısı, sayfa sayısı, fiyatı gibi. Aşağıda değişik kitap nesneleri için bu ortak özelliklerin değerleri verilmiştir.

Yeni bir örnekle Personel sınıfı ve bu sınıfın özelliklerini gösterelim.

Sınıflar belirtilirken, sınıf özellikleri yanında, sınıfa ait nesnelerin değiştirilmesi veya sınıfa ait nesnelerin kullanımı ve işlevleri ile ilgili metotlar da tanımlanabilir. Bunlara sınıf metotları denir. Sınıf metotları, sınıfa ait tüm nesnelerle birlikte kullanılabilir. Yukarıdaki örnekte, Personel sınıfının maaasHesabı() ve ePostaYollama() metotları tanımlanmıştır.

Bu metotlar, sınıfına ait herhangi bir nesne ile birlikte kullanılabilir. maasHesabı() metodu, hangi Personel nesnesi le birlikte kullanılmışsa, o personelin maaşını hesaplar; ePostaYollama() metodu da hangi Personel nesnesi ile birlikte çağrılmışsa, o personel tarafından bir eposta gönderilmesini sağlar.

Aşağıda Personel sınıfından oluşturulmuş bir nesne gösterilmiştir ( burada nesneye bir ad da verilmiştir: bilgisayarMuhBlmBaskani ):

Şimdi Personel sınıfını kullanabilmek için PersonelDene programını yazalım. Bu programın çalıştırılabilmesi için, içinde bir main() metodu olması gerekir. Java’da her şey gibi çalıştırılabilir programlar da bir sınıf olarak tanımlanır. Bir programın çalıştırılabilmesi için static main () metodu olması gerekir; yalnızca main() metodu olan sınıflar çalıştırılabilirler. PersonelDene sınıfında yalnızca bir main() metodu vardır. Ancak başka metotlar da olabilir. main() metodu, çalıştırıldığında, Personel türünde yukarıda özellikleri verilen bilgisayarMuhBlmBaskani nesnesini oluşturur, ve bu nesne üzerinden maasHesabi() metodu ve sonra ePostaYollama() metotlarını çağırır ve durur.

Aşağıdaki örnekte YeniSinif adlı sınıfın tanımlanması ve bu sınıfın DeneYeniSinif sınıfında kullanımı gösterilmiştir.

Bir sınıf içinde yer alan değişkenler ve metotlara, o sınıfın üyeleri ( member ) denir. Bununla birlikte değişkenlere gerçekleştirme değişkenleri ( instance variables ) denilir.

Bir nesne oluşturulurken özel bir metot olan nesne kurucusu ( constructor ) kullanılır. Nesne kurucusu çağrılırken new komutu uygulanır. Ancak o zaman Java bellekte bu nesne için bir bölge ayırır. Bir nesneye ait özelliklere ve metotlara nokta notasyonu kullanılarak erişilir.

 

Sonraki yazılarımda metotlar hakkında daha detaylı bilgiler verilecektir!!

SINIFLAR VE METOTLAR DERS-11” için 2 yorum

  1. Paylasimin çok yararlı olmus ellerine sağlık ama polimorfizm kavramınada değinirsen cok sevinirim.

    1. Metotlarla ilgili konu anlatımlarım henüz bitmedi sadece son zamanlarda yeterince vakit ayıramadığım için geç yayınlama yapmak zorunda kalacağım.En yakın zamanda polimorfizm, rekürsif vb. metot türlerinin yayınlamasını yapacağım. Yorumunuz için teşekkürler 🙂

Bir Cevap Yazın

This site uses Akismet to reduce spam. Learn how your comment data is processed.