200 likes | 431 Views
Önceki Dersi Hatırlama !!. Nesne Tabanlı Programlamaya (NTP) ait 3 ana konu Kapsüllenme Miras Polimorfizm Nesne Tabanlı Programlama da geçen ders öğrendiğimiz bazı terimler Sınıf Obje Bir sınıfı oluşturan yapılar Üye Sınıf örneği Gizlilik (kapsüllenme) Mesaj Alıcı Miras
E N D
Önceki Dersi Hatırlama !! • Nesne Tabanlı Programlamaya (NTP) ait 3 ana konu • Kapsüllenme • Miras • Polimorfizm • Nesne Tabanlı Programlama da geçen ders öğrendiğimiz bazı terimler • Sınıf • Obje • Bir sınıfı oluşturan yapılar • Üye • Sınıf örneği • Gizlilik (kapsüllenme) • Mesaj • Alıcı • Miras • Hiyerarşi çeşidi • Polimorfizm • Geç bağlanma (late binding)
Giriş • Bu bölümde • Objeleri (nesneleri) nasıl oluşturacağız • Ve onları nasıl kullanacağımızı öğreneceğiz.
Sınıf Temelleri • Sınıf içinde tanımlanan metot ve değişkenlere, sınıfın üyeleri denir. • Java sınıfları bir main() metoduna sahip olmak zorunda değildir. • Eğer o sınıf programın başlangıcı ise o zaman bir tane main metodu tanımlanır. • Appletlerde ise main metoduna ihtiyaç duyulmaz.
Basit Sınıf class Kutu { double en; double boy; double yukseklik; } Kutu sandik = new Kutu(); • Kutu sandik nesnenin referansını bildirir. • sandik= new Kutu() bir kutu nesnesi oluşturulur.
New Komutu • New komutu: Bellekte bir nesne için dinamik olarak yer ayırır. • Run-time zamanında olur. • Basit tipler için nesne oluşturulmaz.Böylece bu tipteki değişkenler daha verimli çalışırlar.
publicclass port { publicstaticvoid main(String[] args) { Sablon nesne=newSablon(); nesne.metod(); } } // ana class classSablon { publicvoid metod() { System.out.print("işte nesne tabanlı program"); } }//diğer class
portvesablon adında iki sınıfımız var. • port.java,portsınıfını gösteriyor. • sablon.java,sablonsınıfını gösteriyor. • publictanıtılmış sınıflar mutlaka ayrı dosyalarda tanıtılmalıdır.aynı dosyada 1 tane puplic olur • sablonsınıfı kendi başına çalıştırılamaz. • mainmetodu yok • main metodunu içeren sınıf olanportsınıfı, sablonobjesini oluşturur ve kullanır.
Her Java sınıfıbaşka bir sınıfı miras alır. • portsınıfıjava.lang.Object sınıfını miras alır (extend). • Eğer bir sınıf tanımında extend sözcüğü yoksa o sınıf • Kesinlikle Object sınıfını miras almıştır. • Object Sınıfı • Metotları • Object clone() • boolean equals(Object nesne) • void finalize() • String toString() • Class getClas() • int hashCode() • void notify() • ....
Sınıf yapılandırıcısı (constructor) • Sınıf ismi ile aynı adı taşır. • Sınıfa ait değişkenlerin ilk değerlerini verir. • O sınıfa ait bir obje oluşturulacağı zaman otomatik olarak yapılandırıcı çağrılır. • Özel tip bir metottur • Parametre alabilir ama geriye değer döndürmez. • Bir sınıf birden fazla yapılandırıcıya sahip olabilir.(overloading sayesinde)
Sınıf yapılandırıcısı (constructor) • Eğer uygulamamıza herhangi bir yapılandırıcı koymazsakJava buişlemi kendi otomatik olarak yapmaktadır. • Varsayılan yapılandırcılar (parametresiz yapılandırcılar,default constructor veya “no-args” constructor) içi boş biryordam olarak düşünülebilir • Eğer kendimiz yapılandırıcı yazarsak, Java bizdenvarsıyılan yapılandırıcı desteğini çekecektir. • Kendimize ait özel yapılandırıcılar tanımlarsak Java’ya "Ben ne yaptığımı biliyorum, lütfen karışma" demiş oluruz.
Aşırı Yüklenmiş (Overloaded)Yapılandırıcılar Kullanmak • Aşırı Yüklenmiş Yapılandırıcılar • Aynı ismi alan metodlar (aynı sınıfın içinde) • Parametre listeleri farklı olmak zorunda
statik metodlar • Statik metodlar hatırlayın class adını yazdıktan sonra nokta koyarak çağırıyorduk. Math.pow() • Statik olmayan metodlar bu metodlar sınıf üzerinden türetilmiş bir nesne ile ancak çağrılabilirler. Sablon nesne=newSablon(); nesne.metod(); Main metodu neden static ?? Çünkü JVM nin hiçbir nesne oluşturmadan bu metodu çağırabilmesi lazım
Sınıfın Erişim Alanları • Sınıfın erişim alanı • Sınıf değişkenleri ve metodları • Sınıf değişkenleri (üyeleri) tüm sınıf metodları tarafından erişilebilir. (Global değişken) • Üyeler isimleriyle refere edilirler. • nesne.Üyeİsmi • Saklı sınıf değişkenleri( içinde bulunulan sınıfı temsil eder) • this.değişkenismi
Üyelere Erişimde Kontrol • Üye erişim alanını değiştiriciler • Sınıf değişkenlerine ve metodlarına erişim anahtarları • public • Değişkenler ve metodlar sınıf tarafından üretilen nesneler tarafından ulaşılabilir. • private • Değişkenler ve metodlar sınıf tarafından üretilen nesneler tarafından ulaşılamazlar.
Kullanılan Nesnenin Üyelerine this Kalıbı ile Referans Verme • Anahtar kelimethis (this reference) • Nesnenin kendisini referans etmesini sağlar. • Bu referans sayesinde nesnelere ait global alanlara erişmefırsatı buluruz.
Bir class çatısı anahtar class classİsmi { anahtar veritipi veriadi; public classİsmi(){ // sınıf yapılandırıcısı } anahtar donustipi metodismi(parametre1,….) { // metoda ait ifadeler } } Anahtar:public,private,static
Kullandığımız clasların incelenmesi • Üye değişkenlerini seçebilme • Üye metodlarını seçebilme • Sınıf yapılandırıcılarını seçebilme • Math sınıfı, JoptionPane,Jbutton,Jlabel,String
Kullandığımız sınıfları yazalımsürekli yapılan işler için yeni sınıflar yazalım • Math sınıfını yazalım • Türkçe tarih sınıfı yazalım (hangiAy(),hangiGun(),ayinKaci(),kacinciAy()) • kelimeDuzenle sınıfı yazalım (kucukHarfYap(),buyukHarfYap(),turkceKarekterDuzelt(),