Fonksiyonlar (Metotlar)
BİL131 - Bilişim Teknolojileri ve Programlama Hakan Ezgi Kızılöz
Bir program içerisinde, basit veya karmaşık olmasından bağımsız olmak üzere, bir kod parçasının farklı yerlerde tekrar tekrar kolayca kullanılabilmesi için metotlar kullanılır.
Metotlar, kendisine önceden yapması söylenmiş olan işi, kendisinden yapılması istendiği anda yaparlar.
2
Metot
Şu ana kadar farkında olmadan farklı yapıda metotlar kullandık:
Math.random() .substring() .indexOf()
System.out.println()
3
Metot
Bir metot oluşturulurken karar verilmesi gereken iki önemli nokta vardır:
1) Metodun içerisine dışarıdan herhangi bir değer, parametre, alıp almadığı.
Örneğin;
double sayi = Math.random();
double karesi = Math.pow(sayi, 2);
4
Metot
2) Metodun çalıştıktan sonra geriye herhangi bir değer döndürüp döndürmeyeceği.
Örneğin;
double sayi = Math.random();
System.out.println(sayi);
5
Metot
Bu iki kritere karar verildikten sonra metot tanımı aşağıdaki şekilde yapılmalıdır.
public static dondurulecek_verinin_tipi metot_adi (param_tur_1 param_adi1, param_tur_2 param_adi2, ...)
{
... // metot gövdesi }
6
Metot
Metot geriye değer döndürmüyorsa "döndürülecek verinin tipi" alanına void anahtar kelimesi yazılmalıdır.
Parametre almayan ve geriye değer döndürmeyen ekranaYaz() metodu aşağıdaki şekilde tanımlanabilir:
public static void ekranaYaz() {
System.out.println("Merhaba metotlar");
}
Metot
Metodun geri döndüreceği değerin tipi int, double, boolean, char gibi temel veri türleri olabileceği gibi;
String veya dizi gibi daha karmaşık yapıda veri türleri de olabilir.
Metot geriye değer döndüreceği zaman
"döndürülecek verinin tipi" alanı doldurulmalı ve döndürülecek değer metot içerisinde return komutu ile spesifik olarak belirtilmelidir.
Metot
return komutu, genellikle metodun en sonunda bulunur ve çalıştığı andan itibaren metot içerisinde başka hiçbir komutun çalışmasına izin vermez.
Parametre almayan ve geriye 4 tam sayısını döndüren dortTamSayisi() metodu tanımı aşağıdaki gibi olabilir:
public static int dortTamSayisi() {
return 4;
}
Metot
Bir metot geriye değer döndürüyorsa, döndürdüğü değer ya bir değişkende saklanmalı, ya da System.out.println(); komutu içerisinde hemen ekrana yazdırılmalıdır.
Her ikisinin de yapılmaması durumunda metot çalışacak ve geriye değer döndürecek, fakat geriye döndürdüğü değer daha sonra kullanılamayacaktır.
Örneğin biraz önceki dortTamSayisi() metodunu aşağıdaki şekilde çağırabiliriz:
int tamSayi = dortTamSayisi();
Metot
Bir metot hiç parametre almayabileceği gibi, birden fazla parametre de alabilir.
Birden fazla parametre alan metotlarda parametrelerin türleri aynı olabileceği gibi farklı da olabilir.
Metodun alacağı parametrelerin sayısı ve türleri tamamen programın ihtiyaçlarına göre belirlenmelidir.
Metodun alacağı parametrelerin sayısı ve tipleri belirlendikten sonra parametrelerin her biri metot isminden sonraki parantez içerisine yazılmalıdır.
Metot
Sırasıyla bir tam sayı ve bir String tipinde parametre alan ve geriye hiçbir değer döndürmeyen ekranaYazdir(int, String) aşağıdaki gibi tanımlanabilir:
public static void ekranaYazdir(int sayi, String dizgi) {
System.out.println(sayi + " - " + dizgi);
}
Metot
Metotlara yollanan parametrelerin sırası, metodun tanımlanmasında belirleyici rol oynamaktadır.
Örneğin bir önceki ekranaYazdir(int, String) metodunu çağırırken ekranaYazdir(5,
"hakan"); komutu geçerli bir kullanım iken;
ekranaYazdir("hakan", 5); komutu hatalı olacaktır.
Metot
Metot içerisinde parametreler, önce tanımlanmış ve değeri atanmış bir değişken gibi görülmeli ve bu şekilde kullanılmalıdırlar.
Örneğin iki adet tam sayı parametresi alıp, geriye bu iki tam sayının toplamını döndüren topla(int, int) metodu aşağıdaki gibi tanımlanabilir:
public static int topla(int a, int b){
return a+b;
}
Metot
Bir metot içerisinde tanımlanan değişkenler SADECE o metot içerisinde geçerlidir, metot dışından o değişkenlere ulaşılamaz, değerleri değiştirilemez.
public static void ekranaYazdir() {
int c = 5;
double d = 42.23;
System.out.println(c + d);
}
Metot
Metotlar main() metot içerisinden çağrılabilecekleri gibi, diğer metotlar içerisinden de çağrılabilirler.
public static void main(String[] args){
topla(3, 5);
}
public static void yazdir(int toplam){
System.out.println("toplam = " + toplam);
}
public static void topla(int a, int b) { yazdir(a + b);
}