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.
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