JavaSE Class ve Object İlişkisi Eğitimi-1

Class – Sınıf Kavramı​

  Class lar object-oriented kavramının temelidirler. Sınıflar içinde fields, constructor ve  methodları  barındırabilirler.

  Class ların Tanımlanması (Declaring Classes);

 

Sınıf tanımlamalarında olabilecek bileşenler vardır. Bunları sınıfın tanımlama durumlarına göre kullanabilirsiniz.

1.Sınıflar declare edilirken eşimlerinin açık yada kapalı olması önemli bir durumdur. Bu nedenle sınıf tanımlamalarında erişim belirteçlerinin kullanımı doğaldır.(public, private, protected, default)

2.Bir zorunluluk olmamak ile birlikte sınıf isimlerinin ilk harflerini büyük harfle başlatmak önemlidir.

3.Sınıflar aynı üreyen varlıklar gibi ebeveynlere(parents) sahip olabilirler. Böyle durumlarda kalıtım alarak üst sınıfları ekleme işlemi «extents» parametresi ile kullanılırlar. Ancak dikkat edilmesi gereken konu bir sınıf birden fazla ebeveyni extent edemezler.

4.Sınıflar belli kalıpsal ihtiyaçlara hizmet edebilir.(VeriTabanı İşlemleri, Connections v.s.) Bu gibi durumlarda sınıfların belli kalıplara uygun olarak methodlar üretmesi beklenir. Bu ihtiyaçları Interface ler üzerinden  belirler. Bir sınıf «implemet» parametresi ile bir interface yi dahil eder. Bir sınıf birden fazla interface ekleyebilir.

5.Sınıf sınırları « {} » ile belirlenir.

Sınıflara değişken tanımlamaları yaparken dikkat etmemiz gereken konular bulunmaktadır. İhtiyaçlara göre değişken tanımı yapmamız gereklidir. Temelde üç tip değişken tanımı yapılabilir;

  • Fileds – Global olarak kullanılabilen değişkenler
  • Local Variable – yerel değişkenler
  • Parameters – sınıflar için declare edilmiş değişkenler

  Değişkenler tanımlanırken, data type belirlenmelidir. Her değişkene bir tip ataması yapılır. Yine sınıflarda olduğu gibi değişkenlere de erişim kısıtlaması uygulaya biliriz.(private,public v.s.).

 

Method tanımlama, tüm dillerde olduğu gibi javada da sıklıkla kullanılan bir kod bloğudur. Methodlar kod tekrarlarını engellemek, kodun düzenli ve geliştirilebilir olmasını sağlamak açısından önemlidirler. Methodların tanımlanmasında dikkat edilmesi gerekenler ve methodların temel özellikleri şunlardır;

1.Methodlar erişim belirteci alabilirler.(public,private)

2.Eğer bir method kodlarını işlettikten sonra bir sonuç döndürecek ise döndürdüğü tipe göre parametre almalıdır(return type). Bir dönüş yapılmayacak ise « void » parametresi kullanılmalıdır.

  1. Methodlar dışarıdan parametre alabilirler, eğer parametre alacak ise methodun parantezleri içine alınacak değerler virgülle ayırılarak eklenir. Eğer dışarıdan parametre almayacak ise içi boş parantezler kullanılır.

4.Methodlar hata fırlatabilirler, bu istisnaları yakalamak için exceptions eklenebilir.

5.Tek kelimelik method tanımlamalarında küçük harf kullanılırken kompleks isimlendirmelerde camelcase notasyonu kullanılır.

 

Sınıflar, OOP nin temel nesneleri olduğu için, sınıflardan nesne türetimi yapılırken, constructor dediğimiz kurucu methodlar aktif olarak görev alırlar. Normalde kurucu methodların bilinen geri dönüş tipleri yoktur. Ancak, bu methodlar sınıfı oluşturduktan sonra sınıfın referans bilgisini içeren adres nesnesini geri döndürürler.

  Constructor(Kurucu, Yapıcı) methodların temel kullanımı, sınıfın oluşturulmadan önce default değerlere sahip olması gerekebilir, bu gibi durumlarda kurucu methodlar kullanılır.

  Eğer bir sınıfta constructor tanımlanmamış ise default constructor geçerlidir ve parametre almaz. Özelleştirilmek istenir ise, overload edilerek parametre alan yeni bir kurucu method tanımlanır ise ve sınıf içinde boş kurucu method da tanımlı değil ise o sınıftan parametre kullanılmadan nesne türetilemez.

Default Constructor

Parametreli Constructor

 

Methodlar, bazen overload edilerek kullanılabilirler. Ancak, overload işleminde alınan parametrelerin yazılması gereklidir. Mesela, iki sayının toplanması ya da üç sayının toplanması için bir method yazmak için ayrı ayrı iki ve üç parametre alan bir method oluşturmak gerekli. Peki, gelen argüman sayısı belli olmayan değişken sayıda parametreler için onlarca yüzlerce method mu oluşturmak gerekecek.

 

Sozsuz sayıda, ihtimal ve dinamik işlemler için sınırsız method oluşturmaya çalışmak çok saçma bir şey olacaktır. Bu nedenle esnek sayıda değer alabilen bir yapı kullanmak gereklidir. Örnek olarakta printf methodunu analiz edebiliriz.

  Aşağıda görüldüğü üzere, printf tekbir parametre alabildiği gibi, virgülle ayırılarak birden fazla parametre alabiliyor ve bu parametreleri işleyebiliyor.

 

Nesneler, Java sınıflarının kullanılarak onlardan adreslemesi belli bir lokasyona kayedilerek belleklenmesiyle oluşturulurlar. Class – Object arasındaki ilişkiyi anlayabilmek için şöyle bir ironi yapabiliriz.

  Kilitli bir kapının açılabilmesi için anahtara ihtiyaç vardır, peki kapıyı açmak için anahtar kalıbını kullanabilir misiniz? Tabi ki hayır. Peki o zaman ne yapmamız gerekli? Anahtar kalıbını kullanarak o kalıptan bir anahtar üretmemiz gereklidir.

  Aynen bunun gibi bir sınıfı kullanabilmek için, o sınıftan bir nesne türetmemiz gereklidir. Temelde asıl mantık anahtar – kalıp ironisinde ortak özellik gösterse de işin aslı, çalışma zamanında bir değişkenin yada nesnenin kullanılabilmesi için onun bellekte adreslenmesi yani fiziksel olarak var olması lazım ki onu bilgisayar o parametreyi kullanabilsin. Bu nedenle bir nesnenin kullanılabilmesi için onun tanımlanıp adreslenmesi yani oluşturulması gereklidir.

This Key Word more then Class

 

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir