"Tamam, başka bir yaklaşım deneyelim. Sana arama yöntemlerinin nasıl çalıştığını göstereceğim ve sonra bir önceki dersi tekrar gözden geçirmeye çalış, tamam mı?"

"Hadi yapalım."

"Harika. Size çağrılan işlevlerden/yöntemlerden ve bunların döndürdüğü değerlerden (dönen değerler) bahsedeceğim."

"Komutlar veya deyimler, tek bir karmaşık komut gibi tek bir blok olarak yürütülebilmeleri için yöntemler halinde gruplandırılmıştır. Bunu yapmak için, yöntem (işlev) adını yazmanız ve ardından yöntemin argümanlarını parantez içinde listelemeniz gerekir."

Örnek
package com.codegym.lesson2;
public class MethodCall
{
    public static void main(String[] args)
    {
         print4("I like to move it, move it.");
    }

    public static void print4(String s)
    {
        System.out.println(s);
        System.out.println(s);
        System.out.println(s);
        System.out.println(s);
    }
}

"Yukarıdaki örnekte geçen dizgiyi ekranda dört kez gösterecek bir fonksiyon yazdık. Ardından print46. satırda fonksiyonu çağırdık."

'I like to move it, move it'"Program 6. satıra ulaştığında, s değişkenine değer atayarak 9. satıra atlayacaktır ."

"Ardından 11-14. satırlar yürütülecek. İşlev sona erecek ve program 7. satırda kaldığı yerden devam edecek."

"Anlıyorum."

"Bir işleve yalnızca bağımsız değişkenleri (değerleri) iletmekle kalmaz, aynı zamanda bir işlev çalışmasının sonucunu (dönüş değeri) döndürebilir. Bu, dönüş anahtar kelimesiyle yapılır. Şu şekilde görünür:"

Örnek 1.
İki sayının minimumunu belirleyin.
public class MethodCall
{
   public static void main(String[] args)
   {
      int a = 5, b = 7;
      int m = min(a, b);
      System.out.println("The minimum is "+ m);
   }

   public static int min(int c, int d)
   {
      int m2;
      if (c < d)
           m2 = c;
      else
           m2 = d;

      return m2;
   }
}
İşte nasıl çalıştığı:
public class MethodCall
{
   public static void main(String[] args)
   {
      int a = 5, b = 7;
      int c = a, d = b;
      int m2;
      if (c < d)
           m2 = c;
      else
           m2 = d;

      int m = m2;
      System.out.println("The minimum is "+ m);
   }
}

"Bence mantıklı gelmeye başladı! Sol ve sağ sütunlardaki kod aslında aynı. Sadece soldaki kodun bağımsız bir işlevi var."

"İşlev belirli bir değeri hesaplar ve bu değeri ona ne denirse onu iletmek için dönüş ifadesini kullanır. En azından ben öyle görüyorum."

"Ve haklısın!"

"Ama bu boşluk türü nedir?"

"Bazı işlevler, main() yöntemimiz gibi herhangi bir değeri hesaplamadan veya döndürmeden yalnızca bir şeyler yapar . Bu tür işlevler için özel bir dönüş türü, yani geçersiz , yaratılmıştır."

"Bir işlev hiçbir şey döndürmezse neden hiçbir şey bildirmiyorsunuz?"

"Herhangi bir değişkeni nasıl bildirdiğimizi hatırlıyor musunuz? Tür ve ad. İşlevler için bir tür, ad ve parantez bildiririz. Parantezlerin izlediği bir işlev adı, işlevi nasıl adlandırdığınızdır."

"Öyleyse, bir 'boşluk türü' icat etmek, işlevleri iki kategoriye ayırmaktan daha kolaydı - değer döndürenler ve döndürmeyenler?"

"Kesinlikle! Gerçekten akıllısın oğlum."

"Void tipini nasıl döndürürüz?"

"Biz öyle çalışmıyoruz. Bu şekilde çalışıyor. Java makinesi dönüş ifadesini çalıştırırken 'dönüş' kelimesinin sağındaki ifadenin değerini hesaplar, bu değeri belleğin özel bir bölümünde saklar ve hemen sonlandırır . saklanan değer , fonksiyonun çağrılması sonucunda fonksiyonun çağrıldığı yerde kullanılır.Daha önce verdiğim örnekte de görebilirsiniz."

"int m = min(a, b)'nin m = m2'ye dönüştürüldüğü kısmı mı kastediyorsunuz?"

"Evet. Fonksiyon bittikten sonra her şey sanki fonksiyonun geri dönüş değeri yerine yazılmış gibi çalışıyor. Bu cümleyi aklınızdan tekrar edin ve son örnekteki koda bakın. "

"Bence bu sadece kolay görünüyor. Aslında zor. Ben sadece bazı kısımlarını anladım."

"Önemli değil. İlk denemede sadece zaten bildiğin şeyleri anlayabilirsin. Ne kadar çok anlamadığın şey olursa, yeni bir şeyin içine o kadar derine dalarsın ve sonuçların o kadar iyi olur. Zamanla daha netleşecek." ."

"Peki madem öyle diyorsun. Devam edelim."