Java Eğitimi 14- Javada Fonksiyonlar(Metot Yapısı)

Merhabalar,

Java dilindeki fonksiyonlar nedir, ne işe yararlar? Bu yazıda bunlardan bahsetmeye çalışacağım.

Belirli bir görevi yerine getirmek için yazılarak tanımlanan ve tanımlandığı ismiyle çağrıldığında çalışan kodlar “fonksiyon(metot)” olarak adlandırılır. Bir kere tanımlandıktan sonra farklı yerlerde birden fazla kullanımı mümkün hale gelir. Aslında nesne yönelimli programlamayı destekleyen birçok yazılım için geçerli bir konudur. Fonksiyonlara bölünmüş program parçaları olarak bakabiliriz. Çünkü ilgili işlem nerede çağrılırsa oraya gidip çalışır. 

Fonksiyonun Faydaları

  • Aynı işi yapan programların tekrar tekrar yazılmasını engeller. Böylelikle işi kolaylaştırır. 
  • Fonksiyon sadece gerektiği zaman çalışır, boş yere çalışmaz ve işleri karıştırmaz.
  • Program birden fazla parçaya bölündüğü için birçok kişi aynı program üzerinde çalışabilir.

Bir örnek ile başlayalım ve neler yapabileceğimize giriş yapalım. Mesela fonksiyon isimli bir metot yapısı belirleyelim ve bu metot ekrana yazı yazdırsın. Sonra normal class içine bu fonksiyonu atayarak nasıl çalıştığına bakalım.

Yukarıdaki örnekte hazırlamış olduğum metot yapısını public static void main(String [] args ){}  yapısından hemen önce yazdım.  Daha sonra direkt metodun ismini yazarak çağırdım. Programımızın çıktısı ise;

Bu şekilde aynı kodu 3 kere çalıştırmış olduk. Hem de sadece bir fonksiyon belirleyip tekrar yazmaya uğraşmadan yaptık.

Olayı daha iyi bir şekilde kavrayabilmek için şimdi de işlemler üzerinden gidelim. Mesela iki sayının toplamını veren bir fonksiyon yazmak istersek yapmamız gereken şey toplama adı altında bir program yazmak olur. Daha sonrasında da hazırlamış olduğumuz programı nerede çağırmak istersek oraya ismini yazarız ve fonksiyon çalışır hale gelir. 

public class main {   
public static void toplama(int sayi_1, int sayi_2) {
int sonuc = sayi_1 + sayi_2;
System.out.println(sayi_1 + " + " + sayi_2 + " = " + sonuc);
}
}

Yukarıdaki ifade öğrendiğimiz normal program yapısını kurma olayı. Bu şekilde fonksiyonumuzu oluşturmuş olduk. Sırada fonksiyonu çağırma aşaması var.

   public class main {
            public static void toplama (int sayi_1, int sayi_2) {
            int sonuc = sayi_1 + sayi_2 ;
            System.out.println(sayi_1 + ” + “ + sayi_2 + ” = “ + sonuc);
            }
   

           public static void main (String[] args) {
                   System.out.println(“Toplama”) ;
                   toplama (45, 9) ;

           }

   }

Toplama fonksiyonunu yazmak için fonksiyon adlı bir Java project oluşturdum. Aynı şekilde class adını da oluşturduktan sonra yukarıda yazılı olan kodları yazdım. Peki bu kodlar bize nasıl bir çıktı verecek? Kodları inceleyerek hep beraber görelim. Toplama yapabilmek için en az iki sayıya ihtiyacımız var. Bu yüzden sayi_1 ve sayi_2 adlı iki değişken belirlememiz gerekir. Ve bunları da int şeklinde tanımladık. Normalde yazdığımız kodlar 

   public class main { 
           public static void main (String[] args) {

           //kodlar
           }
   }

şeklinde olurdu. Fonksiyon ekleme işlemi yapacağımız için bu fonksiyonu    public class main {  ile  public static void main (String[] args) { arasına yazdık. sonuc değişkeninin de sayi_1 ve sayi_2 değişkenlerinin toplamını vermesini sağladık. System.out.println(sayi_1 + ” + “ + sayi_2 + ” = “ + sonuc); kısmı ile de ekrana yazdırmış olduk. Fonksiyonu böylece tamamladık ve artık kullanmamız gereken aşamaya geldik. Ekranda işlemin adını görmek için System.out.println(“Toplama”) ; dedikten sonra fonksiyonun ismini yani  toplama (a, b) ; yazdırdık. Toplama olarak hangi iki sayıyı almak istiyorsak a(45) ve b(9) yerine onları yazıp kodu çalıştırırız. Aynı işlemleri çıkarma, çarpma gibi fonksiyonlarla da deneyebiliriz. Aynı mantıkta yapmaya çalışırsak;

public class metot {

public static void toplama(int sayi_1, int sayi_2) {
int sonuc = sayi_1 + sayi_2;
System.out.println(sayi_1 + " + " + sayi_2 + " = " + sonuc);
}

public static void cikarma(int sayi_1, int sayi_2) {
if(sayi_1 > sayi_2) {
int sonuc = sayi_1 - sayi_2;
System.out.println(sayi_1 + " - " + sayi_2 + " = " + sonuc);
}
else {
int sonuc = sayi_2 - sayi_1;
System.out.println(sayi_2 + " - " + sayi_1 + " = " + sonuc);
}
}

public static void carpma(int sayi_1, int sayi_2) {
int sonuc = sayi_1 * sayi_2;
System.out.println(sayi_1 + " x " + sayi_2+ " = " + sonuc);
}

public static void bolme(int sayi_1, int sayi_2) {
int sonuc = sayi_1 / sayi_2;
System.out.println(sayi_1+ " / " + sayi_2+ " = " + sonuc);
}

public static void bolumden_kalan(int sayi_1 , int sayi_2) {
if(sayi_1 >sayi_2) {
int sonuc = sayi_1 % sayi_2;
System.out.println(sayi_1 + " % " + sayi_2+ " = " + sonuc);
}
else {
System.out.println("İlk sayıyı ikinci sayıdan büyük giriniz!!");
}
}

public static void main(String[] args) {
System.out.println("Toplama");
toplama(45, 9);
System.out.println("Çıkarma");
cikarma(3, 20);
System.out.println("Çarpma");
carpma(4, 7);
System.out.println("Bölme");
bolme(72, 6);
System.out.println("Kalan");
bolumden_kalan(26, 4);
}
}

kodlarını elde ederiz. Çalıştırdığımız zaman ise ;

çıktısını ekranda görürüz. Şimdi de belli bir aralıkta verilen sayıların toplamını yazdıran bir program oluşturalım ve onu fonksiyon haline getirelim. Bunun için fonksiyonumuza toplam adını verelim. İşleminin sonucunun ilk değerini 0 olarak belirleyelim ve kodları yazmaya başlayalım. Bir sayıdan başka bir sayıya kadar gitmesi gerekiyor ve her sayıdan sonra belli aralıklarla artması gerekiyor. Bu yüzden for döngüsü ile yapmak mantıklı olacaktır. 12’den başlayıp 58’e kadar birer birer artırmak istersek for(int i=12; i<58; i++) yapısını kullanmamız gerekecektir. Sonucu da sonuc+i şeklinde yazdırırsak toplamı bize vermiş olur. Bunu da fonksiyon olarak başka bir yerde çağırırız ve istediğimiz programı bitirmiş oluruz. 

Birkaç fonksiyon örneği daha göstererek yazımı bitirmek istiyorum.

1. Örnek ve Ekran Çıktısı

2. Örnek

ve çıktısı

3. Örnek

4. Örnek

Yorum bırakın