Metod Nedir ?

Metodlar sayesinde, yapılacak işlemleri ana fonksiyonda sürekli yazmak yerine sadece metod içerisinde tanımlayarak istediğimiz yerde çağırabiliriz. Bu uzun satırlı bir program için oldukça rahatlama yaratacaktır. Çünkü bellek kullanımında azalma sağlanmış olur.

Metod Oluşturmak

erisim_belirleyici donus_tipi metod_adi (parametre listesi)
{
//Metod gövdesi
}

Parametresiz Metodlar

package com.org.java;
public class Java{
public static void main (String [] args) {
ekranayazdir();
}
static void ekranayazdir() {
System.out.println("Bu metod cagirildi.");
}
}

Ekran çıktısı :

Bu metod cagirildi.

Parametreli Metodlar

package com.org.java;
public class Java{
public static void main (String [] args) {
hesapla(3,5);
}
static void hesapla (int a, int b) {
System.out.println(a*b);
}
}

Ekran çıktısı :

15

Daha detaylı bir örnek verecek olursak :

package com.org.java;
public class Java{
double delta = b*b - 4*a*c;
public static void main (String [] args) {
kokbul(1,0,-9);
}
static void kokbul(int a, int b, int c) {
if (delta>0) {
double x1 = ((-b+Math.sqrt(delta))/(2*a));
double x2 = ((-b-Math.sqrt(delta))/(2*a));
System.out.println("2 kok var ve bunlar " + x1 + " ve " + x2 + " dir");
}
else if (delta == 0) {
double x1 = (-b)/(2*a);
System.out.println("1 kok var ve " + x1 + " dir");
}
else {
System.out.println("Kok yok ! ");
}
}

Ekran çıktısı :

2 kok var ve bunlar 3.0 ve -3.0 dir

Metodlara Dizi Türünden Parametre Geçirmek

package com.org.java;
public class Java{
public static void main (String [] args) {
int dizi[] = new int[]{1,4,7};
islemYap(dizi);
for (int i : dizi) {
System.out.println(i);
}
}
static void islemYap(int dizi[]) {
for (int i = 0;i<3;i++)
{
dizi[i] = i*i;
}
}
}

Ekran çıktısı :

0
1
4

Metodları Aşırı Yükleme (OVERLOADING)

 

Farklı işlemleri yapan metodlar aynı isime sahip olabilir. Ancak parametreleri farklı olmak zorundadır. Yani sistem hangi metodu çağırdığımızı anlamalıdır. Bu işlemin adı Overloading dir. Aşağıdaki örneği incelersek :

package com.org.java;
public class Java{
static int metod (int sayi) {
return sayi;
}
static int metod (int sayi1, int sayi2) {
return sayi1;
}
public static void main (String [] args) {
System.out.println(metod(5));
System.out.println(metod(3,5));
}
}

Ekran çıktısı :

5
3

Metodlarda Özyineleme (RECURSION)

Recursion, bir metodun belli bir şart sağlanana kadar kendini sürekli olarak çağırmasıdır.

package com.org.java;
public class Java{
static int faktoriyel (int sayi) {
if (sayi == 1) { return 1; }
else {return (sayi*(faktoriyel(sayi-1));}
public static void main (String [] args) {
System.out.println(faktoriyel(5));
}
}

Ekran çıktısı :

120

Static Metodlar

Her nesne için aynı işi yapan static bir metod tanımlanır ve bütün nesneler için ayrı ayrı oluşturulmaz. Böylece bellekten kazanç sağlanır.

package com.org.java;
public class Java{
public static int metod (int a,int b) { return a*b; }
public static void main (String [] args) {
System.out.println(StaticMetodlar.metod(3,5));
}
}

Ekran çıktısı :

15