Uygulama: Kendi başınıza içerisinde isimler saklayan bir dizi yaratınız ve daha sonra bu dizide kullanıcıdan
aldığınız bir ismi aratınız. Eğer isim dizinin içerisinde bulunursa bu ismin indeks numarasını ekrana yazdırınız.
Bulunamazsa ismin bulunamadığına dair bir mesaj yazdırınız.
import java.awt.*;
import javax.swing.*;
public class Ara {
public static void main(String arg[]) {
String []isimler = {“Hakan Aykac”, “Murat Akar”, “Cenk Gündüz”,
“Cem Daggeçen”};
String aranacak = JOptionPane.showInputDialog(null,
“Aradiginiz ismi giriniz: “);
int index = -1;
for(int i = 0; i < isimler.length; i++) {
if(isimler[i].equals(aranacak)) {
index = i;
break;
}
}
if(index == -1)
JOptionPane.showMessageDialog(null, aranacak+” ismi dizide mevcut degildir.”);
else
JOptionPane.showMessageDialog(null, aranacak+” isminin index numarasi:
“+index);
System.exit(0);
}
}
Metod Kavramı ve Java’da Metodlar
Daha önce bazı noktalarda metodlara değinmiştik. Metod denilen kavramın, program içerisinde yazılmış küçük
program parçaları olduğunu söyleyebiliriz. Metodlar aslında önceden tanımlanmış birtakım işlem şekilleridir. Bu
şekilde görevleri metodlar attında oluşturarak gerektiğinde çağırabiliriz. Bunu şöyle bir örnekle hayalimizde
canlandıralım:
Yazmış olduğumuz programımızı bir robota benzetelim. Bu robota çeşitli görevler yükleyelim. Bunlardan bir tanesi
de “su getir” görevi olsun. Bu görev şu şekilde tanımlansın:
Mutfağa git
Bardağa su doldur
Su dolu bardağı sahibine getir
İşte siz her su isteme işlemi için bu üç komutu robota vermek yerine, sadece 1 defa “su getir” görevini
tanımlayabilirsiniz. Daha sonra da su istediğinizde, sadece bu görevi robota vermeniz, bu üç komutun çalıştırılması
için yeterli olacaktır. Sonuçta, Java’da da metodlar bu şekilde birden fazla komutu tek seferde ve istenildiği zaman
çalıştırabilmek amacıyla tasarlanır. 35
Aşağıdaki örnekte (Metod.java), ekrana sadece Merhaba yazan bir metod gösterilmektedir:
“Mesaj.java” örneğinde de görüldüğü gibi “MesajGoster” isimli metod, main metodunun bittiği yerde
yaratılmıştır. Ancak bu metodun da tıpkı main metodu gibi sınıfın içerisinde yaratıldığına dikkat ediniz. Metodun
yaratılması sırasında ilk satırda
public static void MesajGoster()
şeklinde metodun adı ve daha sonra da
{

}
parantezleri içerisinde bu metodun gerçekleştireceği komutlar yazılmaktadır.
Metodun adını yazdığımız bu ilk satıra “metod bildirimi” denilir. Metod bildirimine ilişkin ayrıntıları bilgilerimiz
arttıkça tamamlayacağız.
Not: Metodları isimlendirirken boşluk bırakılmaz. (Mesaj Goster geçersiz ancak Mesaj_Goster gecerli bir metod
ismidir)
Not: Main metodu ve sınıf kavramlarına sonraki derslerimizde değineceğiz.
Metodların Çağrılması
Şimdi bu Mesaj.java dosyasını çalıştırmaya kalktığımızda, dosyanın düzgün bir şekilde çalıştığını ancak ekranda hiç
bir mesaj yazılmadığını göreceksiniz. Sakın şaşırmayın! Böyle olması çok normal. Bir metod yazıldığı zaman bu onun
aynı zamanda çalışacağı anlamına gelmez. Metodun çalışması için sizin onu çağrmanız gerekmektedir. Bunu robota
“su getir” emrini vermenize benzetebiliriz. Siz bu emri daha önce tanıtmış olsanız bile, emri vermeden robot size su
getirmez. Aynı şekilde yazılmış bir metodun çalışması için de metodun “program akışının olduğu yerde” çağrılmış
olması gerekir. Bir metodu çağırmak için metodun yaratıldığı şekilde adını ve adın yanına da ( ) parantezlerini
eklememiz gerekir:

MesajGoster();

gibi… O halde örneğimizde de metodun çalışmasını görmek için main metodu içerisinde MesajGoster isimli
metodumuzu çağıralım: 36
Programımız ilk çalıştırıldığında her zaman main

Programımız ilk çalıştırıldığında her zaman main metodu “otomatik olarak çağrılır” Daha sonra main metodu
içerisinde yazılan her satırdaki komutlar sırasıyla çalıştırılır. Program akışı MesajGoster(); şeklinde yazılmış olan
metod çağırma komutuna geldiğinde MesajGoster metodunun yazıldığı yere atlar ve buradaki komutları sırasıyla
çalıştırırarak tekrar main metodunda kaldığı yerden çalışmaya devam eder. Tabi ki metod ismi MesajGoster den
başka bir isim de olabilir. Sadece buradaki örnekte bir metod yazılmış ve adı öyle konulmuştur. Bu akış prensibi her
metod için geçerlidir.

Şimdi işlerimizi daha da genelleştirelim ve ekrana sadece Merhaba değil de, istediğimiz bir mesajı gönderen bir
metod oluşturalım. Aslında bu işi zaten JOptionPane sınıfının showMessageDialog isimli metodu ile
yapabiliyorduk. Ancak bu metodun adı çok uzun olmakla beraber program içerisinde birden fazla yerde
çağırdığımızda çok fazla yer kapladığını görmekteyiz. Bu yüzden aynı işi yapan ve adı sadece “M” olan bir metod
yazalım. Ancak bu metoda her seferinde hangi mesajı yazacağını da göndermemiz gerekecektir. Çünkü her
seferinde ekrana başka bir mesaj yazılmasını isteyebiliriz. İşte bu noktada karşımıza parametre kavramı çıkar.
Metodların Parametreler ile Kullanımı
Parametreler yardımıyla metodlara birtakım değişkenler göndermemiz mümkündür. Önceki örneklerimizde
MesajGoster isimli örnek metodumuzu parametresiz olarak kullandık. Aşağıdaki örnekte M isimli metod parametre
ile çalışan bir metod olup, ekrana, kendisine parametre olarak gönderilen mesajı basmaktadır. 37
Burada dikkat edilirse 6. satırda çağrılan M metodu 10. satırda parametre ile bildirilmiştir. Metod bildiriminde
parametreler metodun ( ) parantezleri arasında önce tür adı ve daha sonra da parametre adı yazılarak ve birden
fazla parametre arasında da virgul kullanılarak tanıtılabilir. Yani:
public static void Metod_Adi(<tür> parmaetre1, <tür> parametre2) {

}
şeklinde bildirimi genellemek mümkündür. Örneğin:
public static void M(String mesaj): Sadece String türünde bir parametre alan ve bu parametreyi metod
içerisinde “mesaj” ile temsil eden bir metod bildirimi.
public static void Metod2(int x, double y): Adı x olan ve int türünde bir parametre ile adı y olan ve double
türünde bir parametre alan ve kendi adı da Metod2 olan bir metodun bildirimi.
Bu şekilde bildirimi yapılan bir metodu çağırıken de metodun adı ve daha sonra da ( ) parantezleri içerisine
bildirimde verilen sırada ve türlerde değerle göndermemiz gerekir. Mesela M isimli örnek metodumuza her seferinde
String türünde farklı mesajlar gönderebiliriz. Gönderilen b her String değeri, metod bildiriminde “mesaj” isimli
değişkene kopyalanır ve metodun içerisinde de bu değişken aracılığıyla ele alınır. Mesela bildirimi
public static void Islem(int sayi, String mesaj)
şeklinde yapılmış olan bir metodu şu şekillerde çağırabiliriz:
Islem(6, “Bugun hava guzel”);
Islem(12, “Çok çalışmak lazım”);
Islem(4, “Java Öğrenmek Lazım”);

Burada yapılan şey aslında metodun çağrılması neticesinde gönderilen değerler, metod bildirimi ile tanımlanan
değişkenlere sırasıyla kopyalanır (ya da atanır.) Öyle ki;
Islem(6, “Bugun hava guzel”);
şeklinde metodu çağırdığımızda 6 değeri sayi değikenine ve “Bugün hava güzel” değeri de mesaj değişkenine atanır
ve metod içinde bu şekilde kullanılır.
Ancak Islem(“Selam”, 12); gibi bir çağrım geçerli değildir. İşlem isimli metodun bildiriminde önce int türünde
sonra da String türünde parametre yazılmıştır. Metodu çağırırken de aynı sıraya uymamız gerektiğini unutmayalım. 38
ÖNEMLİ NOT: Özetle, metodları bildirirken metodun alacağı parametreleri tür ve parametre isimlerini yazarak,
metodları çağırıken de parametreler yerine değer göndererek işlem yapmaktayız. Bu iki işlemi birbirine
karıştırmamalıyız.
Metodlarda Geri Dönüş Değeri Kavramı
Yukarıda da anlattığım gibi, metodlara birtakım parametreler göndererek bazı işlemler yapmalarını sağlarız. Bu
işlemler kendi içerisinde uygulanıp tamamlanan işlemler olabileceği gibi, sonunda bir sonuç üretilen işlemler de
olabilir. İşte sonuçta elde edilen bu değerleri kullanabilmemiz için, metodun bu değerleri bize geriye göndermesi
gerekir. Metodların işlemlerinin tamamlaması neticesinde geriye gönderdikleri bu değere “geri dönüş değeri“
denilmektedir. Aşağıdaki örnekte parametre olarak bir çemberin yarıçap değerini alan “alanHesapla” isimli metod,
çemberin alanını hesaplayarak geriye bu değeri bize göndermektedir:
Örnekte de görüldüğü gibi, 9. satırda kullanıcıdan istenen yarıçap değeri 10. satırda metoda parametre olarak
gönderilmektedir. Ama aslında parametre olarak gönderilmeden hemen önce “Double.parseDouble()” metodu ile bu
String türündeki yarıçap değeri double türüne dönüştürülmekte ve dönüşüm sonucu gelen değer “alanHesapla”
isimli metoda parametre olarak gönderilmektedir. Gönderilen bu parametre, metod bildiriminde belirtilen “yaricap”
isimli değişkene aktarılmaktadır.
NOT: Bu aktarım neticesinde, gelen parametre artık metod içerisinde yaricap ismiyle kullanılacaktır.
Eğer metod, 1′den fazla parametreli bir metod olsaydı, bu durumda gönderilen parametre değerleri
aynı sıra ile, metod bildiriminde tanımlanan parametre değişkenlerine aktarılacaktı.
Daha sonra “alanHesapla” metodu kendisine gelen bu parametre’nin, “Math” sınıfının “power” metodu yardımıyla
karesini alarak 3.14 (pi sayısı) ile çarpmakta ve üretilen sonucu da 17. satırda olduğu gibi alan değişkenine
atamaktadır.
NOT: “Math.power” metodu 1. parametre ile kuvveti alıncak sayıyı, 2. parametre ile de bu sayının
kaçıncı kuvvetini alacağını belirler. Geri dönüş değeri olarak da hesapladığı sonucu gönderir.