Java Parametreli Metotlar
Pazartesi sendromu öncesi güzel bir pazar gecesinden Java meraklısı yazılımcılara selamlar :)
Önceki Java makalemizde metotları öğrenmiş ve değer döndüren-iş yapan iki tür metotla örnek uygulamalar gerçekleştirmiştik.Elbette programlama dünyası bu kadar sınırlı kalmıyor ve kalmamalı :)
Hemen hemen bütün programlama dillerindeki metotlarda parametre denilen özel bir kavram vardır,parametreli metotlar içerisinde çalıştıralacak kodların değerlerini (ve fazlası) dışarıdan alarak işleyen metot tipidir.
Şöyle düşünün:
void MesajGoster()
{
JOptionPane.ShowMessageDialog(null,"Merhaba Java!");
}
mesajını ekrana yansıtmak için misal bit JButton'un click eventi altına
MesajGoster();
şeklinde yazdıktan sonra butona tıkladığımızda ekrana "merhaba java" yazılı mesaj kutusu çıkacağını önceki dersimizde öğrenmiştik.
Peki metot içerisinde gösterilmesini istediğimiz yazıyı dışarıdan parametre olarak göstersek fena mı olur?
İşte parametre konusu tam bu noktada giriyor ve
void MesajGoster(tip parametre1,tip parametre2,...)
{
}
şeklinde yazılıyor.Buradaki tip herhangi ilkel(int,string,bool vs.) ya da sınıftan türetilen özel bir tip olabilir,parametre1... şeklinde yazımı ise isteğe bağlı olarak yazdığımız herhangi bir sözcüktür.Aynı mesajı basit bir şekilde parametreye çevirelim:
void MesajGoster(String mesaj)
{
JOptionPane.ShowMessageDialog(mesaj);
}
Burada yazdığımız metodun diğerinden tek farkı ShowMessageDialog içerisine statik düz metin yazmak yerine üstteki "mesaj" isimli parametreyi aynen yazmak oldu.
Bu parametreli metodumuzu kullanmak istediğimizde ise yine misal JButton'un click eventine:
MesajGoster("Bu benim özel metnim");
yazdığımızda ekrana "Bu benim özel metnim" yazılı bir mesaj kutusu görüntülenecektir.
Yani özetle parametreli metotlar ise metot içerisindeki değişkenlerin değerini dışarıda metodun çağırılma anında belirtir ve metot çalışmaya başladığında yazdığımız dinamik değerler işlenir.
Aslına bakarsanız parametreli metot kullanmaya hiçte yabancı değiliz çünkü dikkat ederseniz ShowMessageDialog
metodu bile bizden parametre olarak ekrana yansıtılacak String türde bir değer istiyor.
Bu bahsettiğim kısa örnek için iş yapan void metodu örnek gösterdim ve aynı işlemi değer döndüren metotlar için de yapabiliriz ve hatta şimdi basit bir örnekle yapalım değil mi :)
Şimdi NetBeans ile yeni bir proje oluşturuyor ve JFrame'mimizi aşağıdaki gibi tasarlıyoruz:
Projemizin amacı ise bizden aldığı doğum yılını baz alarak yaşımızı hesaplamak olacak,gayet basit bir konu değil mi :)
Öncelikle arada hiçbir metot ve parametre olmadan kodlarımızı doğrudan yazalım:
Burada düz mantık olarak önce bulunduğumuz yılı 2013 tanımladık ve kullanıcının gireceği yılı int tipinde değişkenlerimize
atadık.Ardından basit çıkarma işlemi ile yaş fakını hesaplayıp ekrana yansıtmak için ShowMessageDialog metodunu kullandık.
Şimdiye kadar yaptıklarımızı çalıştırdığımızda :
program görüldüğü gibi doğru çalışıyor.
Artık düz programlama mantığında yaptığımız kodlarımızı siliyor ve profesyonel programlama aşamalarından en temeline
geçip metod kullanımına geçiyoruz.Yapacağımız ilk özellik şimdiye kadar yaptığımız uygulamayı önce void tipinde parametreli metoda dönüştürmek olsun.
Şimdi yazdığımız metoda bakalım; öncelikle metodumuzun tipini void olarak belirttik bu demek oluyor ki metodumuz herhangi bir değer döndürmeyip iş yapan metot olacak, void deyiminden sonra metodumuza "YasHesapla" adında bir isim verdik.
Ardından düz parantez açıp parametre tanımlaması gerçekleştirdik ve parametre olarak int tipinde sayısal bir değer istedik ve bu parametremizin adını "dogumYili" olarak belirtip parantezi kapattık.
Metot içeriğine ise önceki metotsuz kullanımdan farklı olarak çıkarma işlemi için kullanıcının gireceği jTxtYil JTextBox'ımızı
istemedik,bunun yerine JTxtYil'dan gelecek değeri daha sonra metodu kullanırken isteyeceğiz.Metodumuz klasik bir şekilde çıkarma işlemini yapacak ve az önceki gibi çalışacak ancak çalışması için jButonumuzun click eventindeki
kodları silip yerine bu metodumuzu çağırmalıyız:
Parametreli metot kullanımı ile ilgili en can alıcı noktaya geldik,parametreli bir metodu çağırırken parametresiz metotlardaki gibi parantez içerisinde parametre karşılığını vermediğimizde derleyici bir hata olduğunu belirtecek.Bunu engellemenin yolu yazdığımız parametreli metodun değerini parantez içerisine vermemiz olacak:
Kullanıcının gireceği değeri metodumuza parametre olarak verdiğimizde hata ortadan kalkıyor ve programı çalıştırdığımızda ise:
şeklinde program yine doğru bir şekilde çalışıyor.
Parametreli metodun mantığını gözden geçirmek gerekirse dışarıdan bir ya da birden çok değer alarak aldığı değerleri içeriğinde işleyen metotlardır diyebiliriz,hatta aldığı parametreyi kullanmak zorunda bile değiller.Neyse kafanızı yok yere karıştırmayayım şimdi :)
Parametreli void metodu öğrendiğimize göre şimdi aynı örneğin farklı biçimini uygulayalım: yazacağımız metod bu sefer bizden sadece doğum yılımızı değil aynı zamanda bulunduğumuz yılıda istesin ve yaşı hesaplayıp bize yine kaç yaşında olduğumuz sayıyı int tipinde hesaplayarak geri döndürsün.
Yani artık iş yapan değil değer döndüren iki parametre isteyen bir metot yazacağız ama korkmayın biraz karışık gelse de zamanla çok basite alacağınız bir konu olacak :)
Öncelikle metodumuzun iş yapan değil değer döndüren bir metot olduğunu biliyoruz ve döndürecek değerin türü int olacağına göre metodumuzun adını yazmadan önce int deyimini yazıp metodun adını ardından yazacağız:
Metod adından sonra ise yine parantez açıp parametrelimizi belirttik,bunlar sayısal tipte olan doğum yılı ve bulunduğumuz yıl olur.
Önceki dersimizde değer döndüren metotları görmüş ve içerisinde "return" ifadesi kullanılmadığında derleyicinin hata vereceğini örnekle öğrenmiştik,dolayısıyla şu anda da aynı hata sözkonusu.O yüzden metodumuza return ifadesi koyacağız ama önce yaş hesaplamalıyız:
Metodumuzu oluşturduk ve parametrelerine göre çıkarma işlemi yaptıktan sonra çıkan değeri geri döndürecek,şimdi ise metodumuzu kullanmaya geldi.Yine jButonumuzun içindeki önceden yazdığımız kodları yorum satırı yaparak bu metodumuzu çağırmaya geldi:
Daha önceden yaptığımız tekrarları yoksayarsak burada en önemli konu 85.satır olacak çünkü parametreli bir metodu çağırıp parametrelerine karşılık gelen değerleri tanımladıktan sonra dönüş tipine uygun (bu örnekte int kullandık) uygun bir değişkene atadık ve değişkenimizi ekrana yansıtmak için kullandık.
Parametreli metot kullanımı ile ilgili son olarak bilmemiz gereken bir nokta ise, parametreli bir metot çağırırken illa bir değişkeni parametre karşılığı vermek zorunda olmayışımızdır.Yani:
int yas=YasiGetir(dogumYili,simdikiYil);
yerine
int yas=YasiGetir(1987,2013);
şeklinde yazsak dahi yanlış kullanım söz konusu olamaz.
Parametreli metotlar ile ilgili olarak öğrenmemiz gerekenler şimdilik bu kadarıyla yeterli diye umuyorum,nasıl olsa ileride bol bol yeni örneklerle kullanmaya devam edeceğiz :)
Bir sonraki makalemizde görüşmek üzere hoşçakalın..
Projeyi İndir
Önceki Java makalemizde metotları öğrenmiş ve değer döndüren-iş yapan iki tür metotla örnek uygulamalar gerçekleştirmiştik.Elbette programlama dünyası bu kadar sınırlı kalmıyor ve kalmamalı :)
Hemen hemen bütün programlama dillerindeki metotlarda parametre denilen özel bir kavram vardır,parametreli metotlar içerisinde çalıştıralacak kodların değerlerini (ve fazlası) dışarıdan alarak işleyen metot tipidir.
Şöyle düşünün:
void MesajGoster()
{
JOptionPane.ShowMessageDialog(null,"Merhaba Java!");
}
mesajını ekrana yansıtmak için misal bit JButton'un click eventi altına
MesajGoster();
şeklinde yazdıktan sonra butona tıkladığımızda ekrana "merhaba java" yazılı mesaj kutusu çıkacağını önceki dersimizde öğrenmiştik.
Peki metot içerisinde gösterilmesini istediğimiz yazıyı dışarıdan parametre olarak göstersek fena mı olur?
İşte parametre konusu tam bu noktada giriyor ve
void MesajGoster(tip parametre1,tip parametre2,...)
{
}
şeklinde yazılıyor.Buradaki tip herhangi ilkel(int,string,bool vs.) ya da sınıftan türetilen özel bir tip olabilir,parametre1... şeklinde yazımı ise isteğe bağlı olarak yazdığımız herhangi bir sözcüktür.Aynı mesajı basit bir şekilde parametreye çevirelim:
void MesajGoster(String mesaj)
{
JOptionPane.ShowMessageDialog(mesaj);
}
Burada yazdığımız metodun diğerinden tek farkı ShowMessageDialog içerisine statik düz metin yazmak yerine üstteki "mesaj" isimli parametreyi aynen yazmak oldu.
Bu parametreli metodumuzu kullanmak istediğimizde ise yine misal JButton'un click eventine:
MesajGoster("Bu benim özel metnim");
yazdığımızda ekrana "Bu benim özel metnim" yazılı bir mesaj kutusu görüntülenecektir.
Yani özetle parametreli metotlar ise metot içerisindeki değişkenlerin değerini dışarıda metodun çağırılma anında belirtir ve metot çalışmaya başladığında yazdığımız dinamik değerler işlenir.
Aslına bakarsanız parametreli metot kullanmaya hiçte yabancı değiliz çünkü dikkat ederseniz ShowMessageDialog
metodu bile bizden parametre olarak ekrana yansıtılacak String türde bir değer istiyor.
Bu bahsettiğim kısa örnek için iş yapan void metodu örnek gösterdim ve aynı işlemi değer döndüren metotlar için de yapabiliriz ve hatta şimdi basit bir örnekle yapalım değil mi :)
Şimdi NetBeans ile yeni bir proje oluşturuyor ve JFrame'mimizi aşağıdaki gibi tasarlıyoruz:
Projemizin amacı ise bizden aldığı doğum yılını baz alarak yaşımızı hesaplamak olacak,gayet basit bir konu değil mi :)
Öncelikle arada hiçbir metot ve parametre olmadan kodlarımızı doğrudan yazalım:
Burada düz mantık olarak önce bulunduğumuz yılı 2013 tanımladık ve kullanıcının gireceği yılı int tipinde değişkenlerimize
atadık.Ardından basit çıkarma işlemi ile yaş fakını hesaplayıp ekrana yansıtmak için ShowMessageDialog metodunu kullandık.
Şimdiye kadar yaptıklarımızı çalıştırdığımızda :
program görüldüğü gibi doğru çalışıyor.
Artık düz programlama mantığında yaptığımız kodlarımızı siliyor ve profesyonel programlama aşamalarından en temeline
geçip metod kullanımına geçiyoruz.Yapacağımız ilk özellik şimdiye kadar yaptığımız uygulamayı önce void tipinde parametreli metoda dönüştürmek olsun.
Şimdi yazdığımız metoda bakalım; öncelikle metodumuzun tipini void olarak belirttik bu demek oluyor ki metodumuz herhangi bir değer döndürmeyip iş yapan metot olacak, void deyiminden sonra metodumuza "YasHesapla" adında bir isim verdik.
Ardından düz parantez açıp parametre tanımlaması gerçekleştirdik ve parametre olarak int tipinde sayısal bir değer istedik ve bu parametremizin adını "dogumYili" olarak belirtip parantezi kapattık.
Metot içeriğine ise önceki metotsuz kullanımdan farklı olarak çıkarma işlemi için kullanıcının gireceği jTxtYil JTextBox'ımızı
istemedik,bunun yerine JTxtYil'dan gelecek değeri daha sonra metodu kullanırken isteyeceğiz.Metodumuz klasik bir şekilde çıkarma işlemini yapacak ve az önceki gibi çalışacak ancak çalışması için jButonumuzun click eventindeki
kodları silip yerine bu metodumuzu çağırmalıyız:
Parametreli metot kullanımı ile ilgili en can alıcı noktaya geldik,parametreli bir metodu çağırırken parametresiz metotlardaki gibi parantez içerisinde parametre karşılığını vermediğimizde derleyici bir hata olduğunu belirtecek.Bunu engellemenin yolu yazdığımız parametreli metodun değerini parantez içerisine vermemiz olacak:
Kullanıcının gireceği değeri metodumuza parametre olarak verdiğimizde hata ortadan kalkıyor ve programı çalıştırdığımızda ise:
şeklinde program yine doğru bir şekilde çalışıyor.
Parametreli metodun mantığını gözden geçirmek gerekirse dışarıdan bir ya da birden çok değer alarak aldığı değerleri içeriğinde işleyen metotlardır diyebiliriz,hatta aldığı parametreyi kullanmak zorunda bile değiller.Neyse kafanızı yok yere karıştırmayayım şimdi :)
Parametreli void metodu öğrendiğimize göre şimdi aynı örneğin farklı biçimini uygulayalım: yazacağımız metod bu sefer bizden sadece doğum yılımızı değil aynı zamanda bulunduğumuz yılıda istesin ve yaşı hesaplayıp bize yine kaç yaşında olduğumuz sayıyı int tipinde hesaplayarak geri döndürsün.
Yani artık iş yapan değil değer döndüren iki parametre isteyen bir metot yazacağız ama korkmayın biraz karışık gelse de zamanla çok basite alacağınız bir konu olacak :)
Öncelikle metodumuzun iş yapan değil değer döndüren bir metot olduğunu biliyoruz ve döndürecek değerin türü int olacağına göre metodumuzun adını yazmadan önce int deyimini yazıp metodun adını ardından yazacağız:
Metod adından sonra ise yine parantez açıp parametrelimizi belirttik,bunlar sayısal tipte olan doğum yılı ve bulunduğumuz yıl olur.
Önceki dersimizde değer döndüren metotları görmüş ve içerisinde "return" ifadesi kullanılmadığında derleyicinin hata vereceğini örnekle öğrenmiştik,dolayısıyla şu anda da aynı hata sözkonusu.O yüzden metodumuza return ifadesi koyacağız ama önce yaş hesaplamalıyız:
Metodumuzu oluşturduk ve parametrelerine göre çıkarma işlemi yaptıktan sonra çıkan değeri geri döndürecek,şimdi ise metodumuzu kullanmaya geldi.Yine jButonumuzun içindeki önceden yazdığımız kodları yorum satırı yaparak bu metodumuzu çağırmaya geldi:
Daha önceden yaptığımız tekrarları yoksayarsak burada en önemli konu 85.satır olacak çünkü parametreli bir metodu çağırıp parametrelerine karşılık gelen değerleri tanımladıktan sonra dönüş tipine uygun (bu örnekte int kullandık) uygun bir değişkene atadık ve değişkenimizi ekrana yansıtmak için kullandık.
Parametreli metot kullanımı ile ilgili son olarak bilmemiz gereken bir nokta ise, parametreli bir metot çağırırken illa bir değişkeni parametre karşılığı vermek zorunda olmayışımızdır.Yani:
int yas=YasiGetir(dogumYili,simdikiYil);
yerine
int yas=YasiGetir(1987,2013);
şeklinde yazsak dahi yanlış kullanım söz konusu olamaz.
Parametreli metotlar ile ilgili olarak öğrenmemiz gerekenler şimdilik bu kadarıyla yeterli diye umuyorum,nasıl olsa ileride bol bol yeni örneklerle kullanmaya devam edeceğiz :)
Bir sonraki makalemizde görüşmek üzere hoşçakalın..
Projeyi İndir