28 Haziran 2011 Salı

KALITIM (INHERITANCE)

En genel tanımıyla bir class dan yeni class lar türetmektir. Türetilen her class türediği class ın özelliklerini devralır. Peki neden bir class dan başka classlar türetiriz ki? Bunun cevabı son derece mükemmel. Tüm classlarda olan ortak özellikleri tek class da toplamak. Yani amaç ortak özellikleri tek bir çatı (class diyelim biz buna) altında toplamak.

ARABA
            TAKSİ
            -Fiat Albea
            -Volkswagen  Passat
            MİNİBÜS
            -Ford Transit
            -Hyundai  starex
            OTOBÜS
            -Mercedes Benz Travego
            -Man Fortuna

Dikkat edersek hepsi araba ve bir takım özellikleri aynı. Örneğin hepsinde gaz , fren , vites , teker vs. var. İşte biz bu ortak özellikleri olan nesnelere araba demişiz ve bu class ‘ ın adı da araba olmuş.
Gelelim kalıtım olayının Java classlarında nasıl uygulandığına  ;
Kalıtım classlarında türetmenin yapıldığı en üst class Temel sınıf (Base class) , türetilen classlara ise Türeyen class (derived class) denir. Aynı zamanda  kitaplarda şu isimleride görebilirsiniz. Base class a genelde Superclass  , derived calss a ise Subclass denir.
Türetme işi Java programlama dilinde extends anahtar sözcüğüyle yapılıyor. Şimdi bu anlattıklarımız üzere kodlarımızı yazalım.





public class Super {
    public static  void kimimben()
    {
        System.out.println("Ben super class ım ");
    }
}

Yukarıda temel class ımızı yazdık. Şimdi de bu classtan yeni bir class türetelim. Buraya dikkat ;

public  class tureyen  extends  Super {
    public static  void ben()
    {
        System.out.print("ben tureyen classım.Subclass");
    }
}
Tureyen classımızın adını yazdıktan sonra extend anahtar sözcüğünü kullanarak süper class yani ana classımızın adını yazdık. Bu ayrıntıya dikkat edelim.
Şimdi aklımıza şöyle bir soru takılailir. Acaba  subclass daki bir nesneyi kullanarak superclass daki bir nesneye erişmek mümkün mü? Evet mümkün. Kodları indirdiğiniz de bunun mümkün olduğunu derleyince görebilirsiniz.
Java dilinde Object  class ı tüm classların atasıdır. Bunu kdo yazarken bir nesneye erişmek için  . (nokta) koyduğunuz zaman görebilirsiniz.  Örneğin şöyle bir örnek verebiliriz. Kabul edelim ki Elips adında bir classımız olsun. Bu class Daire classından türetilmiş olmakla beraber Daire classı ise Grafik classından türetilmiştir.  Aşağıda ki resim bu olayı anlamak için yeterlidir.


super  tekniği

super()  tekniği sayesinde temel sınıfta tanımladığım ve ortak özellik olan şeyleri subclass da bir daha tanımlamama gerek kalmaz.
super () yapıcı metod içerisinde (constructor) mutlaka ilk satırda tanımlanmalıdır.
İndireceğiniz dosyada ki örneklerle super()  keywordunu iyi bir şekilde pekiştirebilirsiniz.
Java dilinde superclass üyelerinin  , subclass da yeniden bildirilmesine override denir. Yani superclass daki metod , subclass da geçersiz hale geliyor.


Şekilde ki okun aşağı inmesinin sebebi  erişim belirleyicileri arasındaki erişilebilirlik sınırlarının durumudur . Bu şekilde düşündüğümüzde  şunu söyleyebiliriz artık. Superclass da friendly erişim belirleyicisine sahip olan bir üye , subclass da ya protected ya da public olmalıdır.

Buraya tıklayarak konu ile alakalı kaynak kodları indirebilirsiniz.İyi çalışmalar...

23 Haziran 2011 Perşembe

KIRIK LİNKLER

Zamanla linklerde ki bazı dosyalar silindi.Ben de bu dosyaları sizi için tekrar upload ettim. Buraya  tıklayarak e-kitaplar haricinde ki dosyaları indirebilirsiniz.

Buraya  tıklayarak e-kitapları indirebilirsiniz.İyi çalışmalar...

JAVA DA STRINGLER



Javda’da String işleme için 4 tane işe yarar class ımız ve bu class ların içinde sık sık kullanacağımız metodlar bulunmaktadır.Şimdi sırayla bu class lardan bahsedelim.

String Class
Bu class’ın içerisinde bir çok metod bulunmak kaydıyla biz bu metodlardan sadece bir kaçını yani sık kullanılanları vereceğiz.Ayrıntılı bilgi için Introduction to JAVA PROGRAMMING (Y.DANIEL LIANG) kitabının 258.sahifesinden başlayarak275. Sahifesine kadar olan kısıma bakılabilir.
+charAt(index : int)  : stringde ki istediğimiz yerde ki karakteri verir bize.
+compareTo(anotherString : String) : Başka bir stringle istediğimiz stringi karşılatırır.
+concat(anotherString : String) : İki stringi birbirine bağlar.
+endsWith(suffix : String) : boolean (true ya da false) : Stringin istediğimiz harfle bitip       bitmediğini öğrenmeye yarar.Bitiyorsa true döner.
+equals(anotherString : String) : İki stringin eşit olup olmadığını incelemeye yarar.
+length() : String’in uzunluğunu döner.
+toCharArray() : Bir stringi karakter dizisine dönüştürür.
   +toLowerCase()  :  Stringdeki tüm büyük harfleri küçük harfe çevirir.

   +toUpperCase () : Stringdeki tüm küçük harfleri büyükharfe çevirir.


Character Class

Bu class da daha çok stringde ki karakterler üzerinde oynama yapabileceğimiz metodlar
karşımıza çıkmaktadır.


+compareTo(anotherCharacter : Character) : İki karakteri karşılaştırmaya yarar.ASCI sıralamasında hangisi daha büyükse onun için pozitif bir sayı döner.Eşitlik durumunda 0 döner.

+isDigit() : Karakterin sayı olup olmadığını inceler.Sayı ise true döner.

+isLetter() : Karakterin harf olup olmadığını inceler.Harf ise true döner.

+toLowerCase(ch:char) :  İstenilen karakteri küçük harfe çevirir.

+toUpperCase (ch : char) : İstenilen karakteri büyük harfe çevirir.



StringBuffer Class

Bu class String class ına bir alternatif classtır.



+append(Str : )  :  Stringin sonuna bir şeyler eklemek için kullanılır.

+delete ()  : Derleyicinin bize sunduğu imkanlar dahilinde stringin içinden bir substring ya da bir karakter silmek için kullanılır.

+insert() : Derleyicinin bize sunduğu imkanlar dahilinde stringe ekleme yapılabilir bu metod sayesinde.

+reverse() : Stringi ters çevirmek için kullanılır.



StringTokenizer Class

Başka bir işe yarar class ımız ise StringTokenizer classıdır.Örneğin bir cümlede ki kelimeler
üzerinde işlem yapacaksak bu class ın içinde ki metodu kullanmamız gerekir.

Class tanımlama olayı şu şekildedir :
     
      StringTokenizer emre= new StringTokenizer();

Bu class’ı yazmadan önce :

      İmport java.util.*;
     
Paketini yazmayı unutmayalım.

+countTokens()  : Bu metod bir cümlede ki kelime sayısını döner bize.

+hasMoreToken() : true ya da false döner.Eğer string boş değilse true boş ise false döner.

+nextToken() : hasMoreToken ile beraber kullanıldığında kelimeleri ayırmamızı sağlar.


 Konu ile alakalı kaynak kodları  buraya tıklayarak indirebilirsiniz.İyi çalışmalar...