Codegym Üniversitesi kursunun bir parçası olarak bir akıl hocası ile bir ders parçası. Tüm kurs için kaydolun.


"Yine sen, Amigo. Merhaba."

"Beni gördüğüne pek sevinmemiş gibisin, Diego?"

"Java yöntemleri hakkında bilinmesi gereken her şeyi zaten öğrendiğini düşündüğün izlenimine kapıldım."

"Ah, ben..."

"Sanmıyorum! Daha yarısını bile bilmiyorsun."

"Tabii, kızmıyorum...

"Tamam, yeterince konuştuk. Başlama zamanı. Ve basit bir şeyle başlayacağız. Örneğin, Java'nın bir dönüş ifadesi olduğu gerçeği. Bu, çağrıldığı bir yöntemi anında sonlandırmanıza olanak tanır. İşte ifade:

return;

"Çok basit: noktalı virgülle takip edilen tek sözcük return. Program bu ifadeyi çalıştırır çalıştırmaz, geçerli yöntemden çıkar ve çağıran yöntem devam eder.

" returnYöntemde çağrılırsa main, yöntem mainve onunla birlikte tüm program hemen sona erecektir.

Örnek:

class Solution
{
   public static void fill(int[] data, int from, int to, int value)
   {
     if (from < 0 || to > data.length)
       return;

     for (int i = from; i < to; i++)
     {
       data[i] = value;
     }
   }

   public static void main(String[] args)
   {
     int[] months = {1, 2, 3, 4, 5, 6, 7, 8 ,9, 10, 11, 12};
     fill(months, 2, 10, 8);
   }
}
Yöntem fill , geçirilen dizinin bir bölümünü value.

Dizinin doldurulacak kısmı from ve indeksleri ile tanımlanır to.   Dizinin uzunluğundan  küçükse

veya büyükse , yöntem hemen sonlandırılır.from0to

"Yukarıdaki programın fillkendisine iletilen diziyi ile dolduran bir yöntemi var value. Dizinin tamamını değil, sadece fromve indekslerinin belirttiği kısmı dolduruyor to.

"Yöntemin başlangıcında fill, iletilen değerlerin geçerli olduklarından emin olmak için kontrol edilir. from0'dan küçükse veya todizinin uzunluğundan büyükse, yöntem fillhemen sonlandırılır (bir returnifade yürütür)."

"Anladım. Tüm bu açıklamanın yaptığı bu mu?"

"Aslında returndeyim sandığınızdan daha kullanışlı. O kadar kullanışlı ki Java'daki hemen hemen her yöntemde bulunuyor. Şimdi bunun neden böyle olduğunu anlamanıza yardımcı olacağım.

Sonuç veren yöntemler,void

"Muhtemelen ifadelerin olduğunu ve ifadelerin olduğunu hatırlıyorsunuzdur . Aralarındaki fark nedir?"

"Yanılmıyorsam, bir ifade, bir ifadeden farklı olarak, bir yerde kullanılabilecek bir anlama sahiptir."

"Doğru. Ayrıca, Java'da yöntemlerin de bir değeri olabilir. Ve bu çok iyi bir haber: yöntemler yalnızca girdi parametrelerine dayalı olarak bir şeyler yapmakla kalmaz, aynı zamanda, örneğin, bir şeyi değerlendirmek ve sonucu döndürmek için de kullanılabilir . hesaplama _

"Bu arada, zaten bu tür yöntemlerle karşılaştınız:

double delta = Math.abs(d1 - d2);
Yöntem abs()bir çift döndürür
Scanner console = new Scanner(System.in);
int x = console.nextInt();

Yöntem nextInt()bir döndürürint
String str = "Hello";
String s2 = str.toUpperCase();
Yöntem toUpperCase()bir döndürürString
int[] data = {1, 4, 5, 6, 7, 8, 11};
int[] array = Arrays.copyOf(data, 4);

Yöntem copyOf()bir döndürürint[]

"Her yöntem önceden belirlenmiş bir türden yalnızca bir değer döndürebilir . Dönüş türü, yöntem bildirildiğinde belirlenir:

public static Type name(parameters)
{
  method body
}

nameYöntemin adı nerede , parametersyöntem parametrelerinin listesi ve typeyöntemin döndürdüğü sonucun türü.

Hiçbir şey döndürmeyen yöntemler için özel bir yer tutucu türü vardır: void.

"Başka bir deyişle, yöntemimi yazarsam ve hiçbir şey döndürmek istemezsem, yöntemin türünü be olarak bildiririm voidve bu kadar mı?"

"Evet. Ayrıca Java'nın buna benzer pek çok yöntemi olduğunu da söylemeliyim.

sonuç döndürme

"Bir hesaplamanın/çalışmanın sonucunu döndüren bir yöntemi nasıl ilan edeceğimi buldum. Sonucu yöntemin kendisinden nasıl döndürürüm?"

"Bu geçerli bir soru. returnİfade burada bir kez daha bize yardımcı oluyor. Bir yöntemden sonuç iletmek şuna benzer:

return value;

" returnAçıklama, yöntemi hemen sonlandırır. Ve valueyöntemin, çağrı yönteminden çıktığı zaman geri dönmesi gereken şeydir. türünün, yöntem bildiriminde belirtilenle valueeşleşmesi gerekir Type. İşte öğrendiklerinizi pekiştirmek için bazı örnekler:

Örnek 1. Yöntem, iki sayının minimumunu hesaplar:

int min(int a, int b)
{
   if (a < b)
     return a;
   else
     return b;
}
Yöntem, iki sayının en azını döndürür. İade edilirse Aksi

takdirde iadea < b
a

b

Örnek 2. Yöntem, kendisine iletilen dizeyi niki kez çoğaltır:

String multiple(String str, int times)
{
   String result = "";

   for (int i = 0; i < times; i++);
     result = result + " "+ str;
   return result;
}
Yöntem iki parametre alır — bir dize ve dizenin tekrarlanma sayısı.
Gelecekteki sonuç için boş bir dize oluşturulur.

Yinelemeli bir döngüde times, strdizeye bir boşluk ve dize eklenir result.
Dize, resultyöntemin sonucu olarak döndürülür.

Örnek 3: Yöntem, üçlü işleci kullanarak maksimum iki sayıyı hesaplar:

int max(int a, int b)
{
   return (a > b ? a : b);
}
Yöntem, maksimum iki sayı döndürür.

dönüş (eğer a > b, sonra a, aksi takdirde b)

"Mükemmel. Yöntemler benim yeni süper gücüm!"

"Yalnızca uygulamalı görevlerde yeterince pratik yaparsan. Tekrar tekrar."