 |
|
 |
|
Nesneye dayalı programcılık son yıllarda çok büyük gelişme gerçekleştirmiştir. Bu konunun anlaşılması belki de seneler alabilir. Bilinmesi gereken bazı noktalar;
•Sınıf ve nesne kavramı ve bunların birbirleriyle ilişkisi, •Sınıf ve nesnelerin davranışları ve bunlara ait sınıflar, •Sınıfa ait miras ve program dizaynı üzerine etkisi, •Paket ve ara yüz kavramlarına ait temel bilgiler.
Nesneye dayalı programlama birbiriyle uyumlu bağımsız modüllerden oluşan yapı anlamına gelir.
Sınıf ve diğer sınıf kavramlarının anlatılmasından önce standart kavramlarının Türkçe karşılıklarının verilmesi yararlı olacaktır.
Class (sınıf): Ana nesne kökenli programlama elemanı.
Object (nesne): Sınıf (Class) yapıları bilgisayar belleğinde bir işlem için kullanıldığında aldıkları (özel) isim.
New :Sınıfların kurucu metodunu çağırıp nesne tanımını ve bilgisayar adreslerini oluşturan deyim
Method (metot): Sınıfların içindeki işlevsel program parçacıkları.
Constructor (kurucu metot): Nesne ilk defa oluşturulurken hangi sınıf değişkenlerinin hangi değerleri alacağını belirten metot.
Sınıflar ve Nesneler Sınıf benzer özellikteki nesnelerin oluşturduğu yapıya verilen addır. Nesne denince de gerçek dünyada olduğu gibi diğer nesnelerden oluşan yapılar akla gelebilir. Nesneye dayalı programlamada nesne değil nesnenin ait olduğu sınıf özellikleri göz önünde tutulur. Aynı bilgisayarlar da olduğu bilgisayar işlemci hızı ve ana bellek kapasitesi göz önüne alınmaz, bilgisayar deyince bilgisayar sınıfının özellikleri belirtilir. Her bilgisayar da bulunan monitör, klavye, mouse bilgisayar sınıfının özellikleridir.
Sınıf örneği, güncel nesne için kullanılan bir başka deyimdir. Sınıf nesne için kullanılan genel terim ise; örnek, seçilmiş bir nesneyi belirten terimdir. Sınıf örneği ve nesne deyince aynı şey akla gelmelidir. Bir buton sınıfı ele alalım. Programcının yapması gereken programın gereği buton özelliklerini ( buton rengi, şekli vb.) belirlemek ve butona ihtiyacı olduğunda bu sınıfı çağırmaktır. Sınıf deyince C+ programlama dilindeki struct ve typedef tanımlamaları akla gelebilir, ama unutulmamalıdır ki sınıf bunun çok ilerisindedir.
Davranış ve sınıflar Java da oluşturulan her sınıf iki özellikten oluşur; 1. Sıfat, 2. Davranış. Sıfatlar Sıfatlar nesneleri birbirinden ayırmamızı sağlayan özelliklerdir. Bilgisayar örneğimize devam edelim. İşlemci hızı:Pentium 166 Mhz, Pentium 350 Mhz, Pentium 1000 Mhz Marka: Escort, Vestel, Toplama bilgisayar Ana bellek: 16 MB Edo Ram, 64 MB Sd Ram, 256 MB Sd Ram Sıfatlar durumla ilgili bilgi de verebilir. Örneğin bilgisayarın çalışıp çalışmadığı durumu da bir sıfat. Sıfatlar için değişkenler tanımlanır. Sıfatlar nesneye ait global değişkenler olarak da tanımlanabilir. Sıfatlar her örnekte değişiklik gösterebildiği için örnek değişkenleri veya örneğe ait değişkenler olarak ta tanımlanabilir. ( Çoban,2000)
Davranış Sınıf davranışları, sınıfa ait hangi örneklerin durumunun ne şekilde değiştirebileceklerini gösterir. Bilgisayar örneğimize devam edersek şu davranışlar örnek verilebilir. Bilgisayarı çalıştır Bilgisayarı durdur. Bilgisayarı düşük güce geçir.
Sınıf oluşturulması Eğer herhangi bir editörde şu örneği yazarsak
Böylece Bilgisayar sınıfı oluştrulmuş olur. Bu sınıfa ait özellikler string tipinde marka, int tipinde hız, mantıksal değişkenler (true, false) bildurumu tanımlanmıştır.
Java:
void bilcalistir ( ){ if (bildurumu= = true) System. out. println(“Bilgisayar çalışıyor” ); else{ bildurumu= true; System. out. println(“Bilgisayar şimdi çalıştırldı” ); } }
Yazdığımız program parçası bilgisayarın çalışıp çalışmadığı kontrol ediliyor. Eğer çalışıyorsa “Bilgisayar çalışıyor” mesajı veriliyor, aksi durumda bilgisayar durumu değişkeni true yapılarak bilgisayar çalıştırılıp, “Bilgisayar şimdi çalıştırıldı” mesajı verdiriliyor.
Java:
void ozelliklerebak ( ){ System. out. println(“Bu bilgisayar” + marka + ” “ +hız ); if (bildurumu= = true) System. out. println(“Çlışyor” ) ; else System. out. println(“Duruyor” ); }
Yukarıdaki program parçası bilgisayarın markasını, hızını ve çalışıp çalışmadığını gösterir. Bu program yazılıp Javac Bilgisayar.java komutu ile derlendiğinde tanımladığımız sınıf bir ana programdan çalışmadığı için ; In class Bilgisayar: void main( String argv ( J ) is not defined hatası verir. Bu yüzden önce Bilgisayar sınıfını kullanan bir program yazmamız gerekir.
Bilgisayar.java (Class Örneği)
Java:
class Bilgisayar { String marka; int hiz; boolean bildurumu; void bilcalistir ( ){ if (bildurumu== true) System. out. println("Bilgisayar €alisiyor"); else{ bildurumu= true; System. out. println("Bilgisayar simdi €alistirildi"); } } void ozelliklerebak (){ System. out. println("Bu bilgisayar" + marka + " " +hiz ); if (bildurumu== true) System. out. println("Çalisiyor") ; else System. out. println("Duruyor"); } public static void main (String args []){ Bilgisayar m= new Bilgisayar (); m. marka= "Vestel"; m. hiz= 667; System. out. println("™zelliklere bak"); m. ozelliklerebak(); System. out. println("___________"); System. out. println("Bilgisayar çalistiriliyor"); m. bilcalistir(); System. out. println("___________"); System. out. println("™zellikler bak"); m. ozelliklerebak(); System. out. println("___________"); System. out. println("Bilgisayar çalistiriliyor"); m. bilcalistir(); }}
Programdaki void kısmında m=new Bilgisayar( ) ile Bilgisayar sınıfı özelliklerine sahip m adlı bir değişken tanımlanmış olur
|
 |
 |
|
 |
|
|