Java Metod Oluşturma ve Kullanma
Java severlere yeniden selamlar :)
Bugünkü java dersimizde nesne tabanlı bir programlama dili (object orianted programming) olan javanın metotlarına giriş
yapıp void metotları öğreneceğiz.
Aslında konuya hiçte yabancı sayılmayız çünkü şu ana kadar öğrendiğimiz birçok konuda metotları kullanmıştık,o yüzden
eğlenceli bir konu olacak :)
Metotlardan kısaca bahsedersek; belli bir program parçasını devralan ve içerisine yazılan kodları işleyen fonksiyonlardır.
Tanıma bakarsak içeriğine kod yazılan ve bu kodları işleyen dedik,yani çalıştırmak istediğimiz kodları jButonun click eventine doğrudan yazmak yerine bir metot içerisine yazarakta çalıştırabiliriz.
Peki bu bize ne sağlıyor diye sorabilirsiniz,düşünün on binlerce satırdan oluşan bir programınız var ve birçok işlem ortak
özellikleri kullanıyor,tüm bunları tek bir buton altına yazdığınızda ortaya çok karmaşık bir düzensizlik çıkacak ve aynı
zamanda ortak olan özellikleri her defasında yeniden yazmış olacaksınız.
Özellikle aynı kodu tekrar yazmak yazılımcılıkta bir felakettir çünkü hem gereksiz zaman kaybı yaratır hem de projelerin
içeriğini gereksiz yere şişmesine sebep olur.İşte bu iki kritik durumun önüne geçebilmek adına nesne tabanlı programlama konusu ortaya çıkmış ve metotlar yazılmıştır.
Şu ana kadar en sık kullandığımız metot ise JOptionPane sınıfına ait ShowMessageDialog() metoduydu.Bu metot java mimarisinin kendisinden gelmektedir ve bir void (iş yapan) metottur.
Tam bu noktada öğrenmemiz gereken konu ise metotlar geriye değer döndüren ve iş yapan olmak üzere 2'ye ayrılmaktadır.Öncelikle iş yapan void metotları görelim; void metotlar içerisine yazılan kodları çalıştırırlar ve yazılan metot programın bir başka noktasında sınırsız sayıda tekrar kullanılabilirler,yani metot içeriğini kopyala-yapıştır gibi farklı yerlere yazmak yerine kodlar metot içerisine bir defalığına yazılır ve metot ismi farklı yerlerden çağırılarak yeniden defalarca çalışır.
Şimdi NetBeans'i açarak yeni bir masaüstü projesi oluşturalım ve jFrame'e 1 buton ekleyelim:
Şimdi jButonumuzun action performed eventine geçelim ve ekrana "merhaba dünya" yazısını yazdırmak için ShowMessageDialog() metodunu kullanalım:
Programımızı çalıştıralım:
Gördüğünüz gibi kodu eventimize yazdığımızda çalışıyor,peki şimdi yeni bir jButon daha ekleyelim ve onda da aynı mesajı
verdirelim:
Tekrar aynı ShowMessageDialog() metodumuzu yeni jButonumuzun action performed eventine yazalım:
Artık kod tekrarı yaptık ve aynı kodu gereksiz yere ikinci jButonumuza ekledik,peki tek satır değilde 1000 satırlık bir kodu bu şekilde tekrar tekrar yazsaydık işte o zaman tam bir felaket olurdu :)
Bu şekilde yazmak yerine şimdi kendi metodumuzu yazalım,metodumuzun öncelikle başına "void" deyimini ekliyor ve ardından metodumuza bir isim veriyoruz:
Metodumuzu yazdık ve içerisi tamamen boş, yani bu metot herhangi bir işlem yapmayacak tıpkı panele eklenen yeni bir jButon gibi..
Metot isimlendirme kurallarına da çok dikkat etmeliyiz,örneğin metot isimlerinde Türkçe karakterler kullanılmaz,boşluk yer almamalı...Yani değişkenlere nasıl isim tanımlıyorsak onlar gibi ama baş harfleri mutlaka büyük yazılmalı.
Şimdi boş void metodumuzun içerisine çalışmasını istediğimiz ShowMessageDialog() metodumuzu kullanalım:
Metot içerisinde metot kullanmak,bu size bi ipucu olsun ilerleyen derslerimiz için :)
Metodumuzu oluşturduk ve bu metodu kullanabilmek için ismini bir yerlerden çağırmamız gerekiyor,bu metodumuzu jButonlarda kullanacağımız için jButonların içerisine yazdığımı ShowMessageDialog() metotlarını siliyor,bu metodumuzu yazıyoruz:
Şimdi programımızı çalıştırıyoruz ve hangi jButona tıklarsak tıklayalım MesajGoster() metodumuz çalışacak:
Böylece kod tekrarı yapmadan aynı kodları tek bir noktaya yazarak farklı yerlerden çağırıp kullanabiliyoruz,nesne tabanlı
programlama nimetlerinden birisini öğrenmiş olduk :)
Konumuza tekrar dönelim ve metotların iş yapan ve geriye değer döndüren metotlar olarak 2'ye ayrıldığından bahsetmiştik,iş yapan void metodu az önce öğrendik şimdi ise geriye değer döndüren metotları öğrenmeye geldi.
Geriye değer döndüren metot tıpkı void metoda benzer ancak içerisine yazılan kodlar herhangi bir işi gerçekleştirsin ya da gerçekleştirmesin mutlaka "return" (geriye dön) deyimini kullanarak bir değer döndürebilmek zorundadır.
Değer döndüren metot yazımı ise döndürecek değerin tipi ve adından oluşur,dönüş tipi olarak string,int,boolean gibi değişken tipleri olabileceği gibi dizilere benzer karma tipler de döndürebilirsiniz.
Örneğin iki sayıyı toplayıp sonucu integer tipinde geri döndüren bir metodumuz olsun ve çıkan sonucu ekrana yansıtalım,öncelikle yeni bir jButon ekleyelim:
Şimdi code-behind'a geçelim ve toplama metodumuzu yazalım, öncelikle geri dönüş tipi int olacak demiştik o halde metot adından önce dönüş tipi olacak olan int yazıyoruz:
Metodumuzu yazdık şimdi ise içerisine 9 ve 7 sayılarını yaptıran basit bir toplama işlemini yazıyoruz:
Toplama işlemini gerçekleştiren değişkenimizi ise "return" deyimi ile geri döndürüyoruz,return işlemini yapmazsak hata alırız:
Bir metotta geriye değer döndürebilmek için illa bir değişken kullanmak zorunda değilsiniz,örneğin toplama işlemini değişkene atamadan doğrudan return edebiliriz:
Bu şekilde kullanım ile önceki kullanım arasında hiçbir fark yoktur yeter ki dönüş tipi metoda uyumlu olsun,şimdi bu metodumuzu nasıl kullanacağımıza geldik.
Az önce gördüğümüz void metodu doğrudan jButon altında rahatlıkla çağırabiliyorduk çünkü bir iş yapıyor ancak bir değer döndürmüyordu.
Değer döndüren metodun geriye döndürdüğü değeri ise aynı tipte bir değişken oluşturup karşısına metodu yazabiliriz:
ve oluşturduğumuz bu değişkeni istediğimiz her yerde kullanabiliriz,böylece geriye değer döndüren metodun dönen değerini yakalamış olduk.
Tıpkı return deyimini kullandığımız gibi bir değişken kullanmadan da geriye değer döndüren metodu kullanabiliriz,örneğin:
Burada ise geriye değer döndüren metodun dönen değerini hiçbir değişkene atamadan doğrudan ShowMessageDialog() metoduna parametre olarak verdik,çalıştırdığımızda ise:
yine aynı sonucu göreceğiz.
Metotlar ile ilgili ilk öğrenmemiz gerekenler şimdilik bu kadar yeterli diye umuyorum,bir sonraki makalemizde ise metotlarda parametre kullanımını öğreneceğiz.
Siz de kendi kendinize yeni metotlar yazarak bu konuyu el aşinalığı edinmenizi öneririm zira bundan sonraki derslerimizde
artık nesne tabanlı programlama şeklinde ilerleyeceğimiz için bol bol metotlardan faydalanacağız.
Bir sonraki makalemizde görüşmek dileğiyle hoşçakalın :)
Projeyi İndir
Bugünkü java dersimizde nesne tabanlı bir programlama dili (object orianted programming) olan javanın metotlarına giriş
yapıp void metotları öğreneceğiz.
Aslında konuya hiçte yabancı sayılmayız çünkü şu ana kadar öğrendiğimiz birçok konuda metotları kullanmıştık,o yüzden
eğlenceli bir konu olacak :)
Metotlardan kısaca bahsedersek; belli bir program parçasını devralan ve içerisine yazılan kodları işleyen fonksiyonlardır.
Tanıma bakarsak içeriğine kod yazılan ve bu kodları işleyen dedik,yani çalıştırmak istediğimiz kodları jButonun click eventine doğrudan yazmak yerine bir metot içerisine yazarakta çalıştırabiliriz.
Peki bu bize ne sağlıyor diye sorabilirsiniz,düşünün on binlerce satırdan oluşan bir programınız var ve birçok işlem ortak
özellikleri kullanıyor,tüm bunları tek bir buton altına yazdığınızda ortaya çok karmaşık bir düzensizlik çıkacak ve aynı
zamanda ortak olan özellikleri her defasında yeniden yazmış olacaksınız.
Özellikle aynı kodu tekrar yazmak yazılımcılıkta bir felakettir çünkü hem gereksiz zaman kaybı yaratır hem de projelerin
içeriğini gereksiz yere şişmesine sebep olur.İşte bu iki kritik durumun önüne geçebilmek adına nesne tabanlı programlama konusu ortaya çıkmış ve metotlar yazılmıştır.
Şu ana kadar en sık kullandığımız metot ise JOptionPane sınıfına ait ShowMessageDialog() metoduydu.Bu metot java mimarisinin kendisinden gelmektedir ve bir void (iş yapan) metottur.
Tam bu noktada öğrenmemiz gereken konu ise metotlar geriye değer döndüren ve iş yapan olmak üzere 2'ye ayrılmaktadır.Öncelikle iş yapan void metotları görelim; void metotlar içerisine yazılan kodları çalıştırırlar ve yazılan metot programın bir başka noktasında sınırsız sayıda tekrar kullanılabilirler,yani metot içeriğini kopyala-yapıştır gibi farklı yerlere yazmak yerine kodlar metot içerisine bir defalığına yazılır ve metot ismi farklı yerlerden çağırılarak yeniden defalarca çalışır.
Şimdi NetBeans'i açarak yeni bir masaüstü projesi oluşturalım ve jFrame'e 1 buton ekleyelim:
Şimdi jButonumuzun action performed eventine geçelim ve ekrana "merhaba dünya" yazısını yazdırmak için ShowMessageDialog() metodunu kullanalım:
Programımızı çalıştıralım:
Gördüğünüz gibi kodu eventimize yazdığımızda çalışıyor,peki şimdi yeni bir jButon daha ekleyelim ve onda da aynı mesajı
verdirelim:
Tekrar aynı ShowMessageDialog() metodumuzu yeni jButonumuzun action performed eventine yazalım:
Artık kod tekrarı yaptık ve aynı kodu gereksiz yere ikinci jButonumuza ekledik,peki tek satır değilde 1000 satırlık bir kodu bu şekilde tekrar tekrar yazsaydık işte o zaman tam bir felaket olurdu :)
Bu şekilde yazmak yerine şimdi kendi metodumuzu yazalım,metodumuzun öncelikle başına "void" deyimini ekliyor ve ardından metodumuza bir isim veriyoruz:
Metodumuzu yazdık ve içerisi tamamen boş, yani bu metot herhangi bir işlem yapmayacak tıpkı panele eklenen yeni bir jButon gibi..
Metot isimlendirme kurallarına da çok dikkat etmeliyiz,örneğin metot isimlerinde Türkçe karakterler kullanılmaz,boşluk yer almamalı...Yani değişkenlere nasıl isim tanımlıyorsak onlar gibi ama baş harfleri mutlaka büyük yazılmalı.
Şimdi boş void metodumuzun içerisine çalışmasını istediğimiz ShowMessageDialog() metodumuzu kullanalım:
Metot içerisinde metot kullanmak,bu size bi ipucu olsun ilerleyen derslerimiz için :)
Metodumuzu oluşturduk ve bu metodu kullanabilmek için ismini bir yerlerden çağırmamız gerekiyor,bu metodumuzu jButonlarda kullanacağımız için jButonların içerisine yazdığımı ShowMessageDialog() metotlarını siliyor,bu metodumuzu yazıyoruz:
Şimdi programımızı çalıştırıyoruz ve hangi jButona tıklarsak tıklayalım MesajGoster() metodumuz çalışacak:
Böylece kod tekrarı yapmadan aynı kodları tek bir noktaya yazarak farklı yerlerden çağırıp kullanabiliyoruz,nesne tabanlı
programlama nimetlerinden birisini öğrenmiş olduk :)
Konumuza tekrar dönelim ve metotların iş yapan ve geriye değer döndüren metotlar olarak 2'ye ayrıldığından bahsetmiştik,iş yapan void metodu az önce öğrendik şimdi ise geriye değer döndüren metotları öğrenmeye geldi.
Geriye değer döndüren metot tıpkı void metoda benzer ancak içerisine yazılan kodlar herhangi bir işi gerçekleştirsin ya da gerçekleştirmesin mutlaka "return" (geriye dön) deyimini kullanarak bir değer döndürebilmek zorundadır.
Değer döndüren metot yazımı ise döndürecek değerin tipi ve adından oluşur,dönüş tipi olarak string,int,boolean gibi değişken tipleri olabileceği gibi dizilere benzer karma tipler de döndürebilirsiniz.
Örneğin iki sayıyı toplayıp sonucu integer tipinde geri döndüren bir metodumuz olsun ve çıkan sonucu ekrana yansıtalım,öncelikle yeni bir jButon ekleyelim:
Şimdi code-behind'a geçelim ve toplama metodumuzu yazalım, öncelikle geri dönüş tipi int olacak demiştik o halde metot adından önce dönüş tipi olacak olan int yazıyoruz:
Metodumuzu yazdık şimdi ise içerisine 9 ve 7 sayılarını yaptıran basit bir toplama işlemini yazıyoruz:
Toplama işlemini gerçekleştiren değişkenimizi ise "return" deyimi ile geri döndürüyoruz,return işlemini yapmazsak hata alırız:
Bir metotta geriye değer döndürebilmek için illa bir değişken kullanmak zorunda değilsiniz,örneğin toplama işlemini değişkene atamadan doğrudan return edebiliriz:
Bu şekilde kullanım ile önceki kullanım arasında hiçbir fark yoktur yeter ki dönüş tipi metoda uyumlu olsun,şimdi bu metodumuzu nasıl kullanacağımıza geldik.
Az önce gördüğümüz void metodu doğrudan jButon altında rahatlıkla çağırabiliyorduk çünkü bir iş yapıyor ancak bir değer döndürmüyordu.
Değer döndüren metodun geriye döndürdüğü değeri ise aynı tipte bir değişken oluşturup karşısına metodu yazabiliriz:
ve oluşturduğumuz bu değişkeni istediğimiz her yerde kullanabiliriz,böylece geriye değer döndüren metodun dönen değerini yakalamış olduk.
Tıpkı return deyimini kullandığımız gibi bir değişken kullanmadan da geriye değer döndüren metodu kullanabiliriz,örneğin:
Burada ise geriye değer döndüren metodun dönen değerini hiçbir değişkene atamadan doğrudan ShowMessageDialog() metoduna parametre olarak verdik,çalıştırdığımızda ise:
yine aynı sonucu göreceğiz.
Metotlar ile ilgili ilk öğrenmemiz gerekenler şimdilik bu kadar yeterli diye umuyorum,bir sonraki makalemizde ise metotlarda parametre kullanımını öğreneceğiz.
Siz de kendi kendinize yeni metotlar yazarak bu konuyu el aşinalığı edinmenizi öneririm zira bundan sonraki derslerimizde
artık nesne tabanlı programlama şeklinde ilerleyeceğimiz için bol bol metotlardan faydalanacağız.
Bir sonraki makalemizde görüşmek dileğiyle hoşçakalın :)
Projeyi İndir
yanlışlıkla çarpıya basıp beğenmedim oyu verdim kusura bakma :) teşekkürler makale için
Çok basit anlatmışsınız teşekkürler