Java METOT KAVRAMI
İlk dersimizde sınıf için bir şablon niteliğindedir ve nesneler için de o şablondan türetilen birer varlıktır demiştik. Nesnelerin de özellikleri ve eylemleri vardı. Özellikleri değişkenler ile verdik, sıra geldi eylemlere. Örneğin bir araba nesnemiz olsun, arabamızın hız yapmak, fren yapmak, vites değiştirmek, kalan yakıt miktarını görmek, sağa/sola dönmek, korna çalmak gibi eylemleri olsun. Bu eylemlerin her birini ayrı ayrı metotlar olarak düşünebiliriz. Bir anlamda C dilindeki fonksiyonlar gibi de düşünülebilirler.
Metotlar, temel olarak belli bir işi yapmak üzere tanımlanmış kod bloklarıdır. Bu işi yapmak için bazı parametreler alabilirler yada almayabilirler. Örneğin dizi konusundaki sort( dizi_adı ); şeklinde kullandığımız metodu düşünecek olursak, hangi dizinin sıralanması gerektiği bilgisini sıralama metoduna vermemiz gerekir. Bu metot bizim için diziyi kendi içerisinde sıralar. Bununla birlikte metotlar işlerini bitirdikten sonra geriye bir değer de döndürebilirler. Buna örnek olarak da yine dizi konusunda anlattığımız binarySearch( dizi_adı, aranacak_değer); metodunda düşünecek olursak, verdiğimiz dizide istenilen değeri arayan bir metot, değeri bulursa nerede bulduğunu, bulamazsa da bulamadığını ifade edecek bir değeri döndürmesini bekleriz. İşte bu şekilde metotlar birer fonksiyon gibi çalışarak belirli işler yaparlar. Bir metot tanımlamak için
gorunurluk_tipi donus_degeri metot_adı(parametreler) { -- kod bloğu -- }
şeklinde bir format yazabiliriz.
Geri dönüş değeri olarak, bir ilkel tip (int, double, boolean gibi) yada bir sınıf (String, Araba, Insan gibi) yada dönüş değeri yoksa void anahtar kelimesi kullanılır. Örneğin iki sayıyı toplayan bir metot tanıtacak olursak
public int topla(int a, int b) { return a+b; }
şeklinde bir metot tanıtabiliriz. int tipindeki topla isimli metodumuz, her biri int tipinde a ve b isimli parametreleri alarak return komutu ile a+b işleminin sonucunu döndürür. Yada bir insanın alışveriş sırasında bir ürünü alırken fiyatına göre karar vermesini basitçe modelleyecek olursak
public boolean kararVer( double fiyat, double max ) { if( fiyat > max ) return false; else return true; }
şeklinde bir metot düşünebiliriz. Burada double tipinde ürün fiyatını ve kişinin şu fiyattan pahalıysa almam dediği max isimli parametreyi alarak, if içerisinde karşılaştırıp pahalıysa almam ucuzsa alırım şeklinde basitçe bir karar mekanizması kuran bir metot tanımlamış olduk. Henüz if konusunu anlatmadığım için burada da ufakça bir değineyim, if kontrol yaparak, içerisinde verilen şart doğruysa ilk bloğu, yanlışsa else bloğunu çalıştırır.
Metot kavramını temel olarak anladıysak, get ve set metotları ile devam edelim.