1. returnKenyataan tersebut

Fikirkan anda sudah mempelajari semua tentang kaedah Java? Apa sahaja yang anda fikir anda tahu, anda masih tidak mengetahui separuh daripadanya.

Mari kita mulakan dengan sesuatu yang mudah. Sebagai contoh, Java mempunyai pernyataan pulangan yang membolehkan anda menamatkan serta-merta kaedah yang memanggilnya. Berikut adalah kenyataannya:

return;

Ia mudah: perkataan bersendirian returndiikuti dengan koma bertitik. Sebaik sahaja program melaksanakan kenyataan ini, kaedah semasa keluar serta-merta, dan panggilan diteruskan.

Jika returndipanggil dalam mainkaedah, maka mainkaedah akan segera berakhir, dan dengannya keseluruhan program.

Contoh:

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);
   }
}


Kaedah ini fill mengisi sebahagian daripada tatasusunan yang diluluskan dengan value.
Bahagian tatasusunan yang akan diisi ditentukan oleh indeks from dan to.
Jika from kurang daripada 0atau jika to lebih besar daripada panjang tatasusunan, maka kaedah itu ditamatkan serta-merta.

Program di atas mempunyai fillkaedah yang mengisi tatasusunan yang dihantar kepadanya dengan value. Ia tidak mengisi keseluruhan tatasusunan, hanya bahagian yang ditentukan oleh indeks fromdan to.

Pada permulaan kaedah fill , nilai yang diluluskan disemak untuk memastikan ia sah. Jika fromkurang daripada 0, atau jika to lebih besar daripada panjang tatasusunan, maka fillkaedah ditamatkan serta-merta (melaksanakan returnpernyataan).

Kenyataan ini returnberguna: hampir setiap kaedah di Jawa mempunyai satu, dan inilah sebabnya.



2. Kaedah dengan hasilnya,void

Ingat kita pernah mengetahui bahawa terdapat kenyataan, dan ada ungkapan . Ungkapan, tidak seperti pernyataan, mempunyai nilai yang boleh digunakan di suatu tempat.

Dan, dalam Java, kaedah boleh mempunyai nilai . Dan ini adalah berita yang sangat baik: kaedah bukan sahaja dapat melakukan sesuatu berdasarkan parameter input, tetapi juga, sebagai contoh, untuk menilai sesuatu dan mengembalikan hasil pengiraan .

Dengan cara ini, anda telah menemui kaedah sedemikian:

double delta = Math.abs(d1 - d2);
Kaedah ini abs()mengembalikan dua kali ganda
Scanner console = new Scanner(System.in);
int x = console.nextInt();

Kaedah nextInt()mengembalikan anint
String str = "Hello";
String s2 = str.toUpperCase();

Kaedah toUpperCase()mengembalikan aString
int[] data = {1, 4, 5, 6, 7, 8, 11};
int[] array = Arrays.copyOf(data, 4);

Kaedah copyOf()mengembalikan anint[]

Setiap kaedah hanya boleh mengembalikan satu nilai bagi satu jenis yang telah ditetapkan. Jenis pulangan ditentukan apabila kaedah diisytiharkan:

public static Type name(parameters)
{
  method body
}

Di manakah name nama kaedah, parameters senarai parameter kaedah, dan type jenis hasil yang kaedah itu kembalikan.

Untuk kaedah yang tidak mengembalikan apa-apa, terdapat jenis pemegang tempat khas: void.

Adakah anda menulis kaedah anda sendiri dan tidak mahu mengembalikan apa-apa kepada kaedah panggilan? Hanya isytiharkan jenis kaedah sebagai void, dan masalah itu diselesaikan. Terdapat juga banyak kaedah seperti ini di Jawa.


3. Mengembalikan keputusan

Kami baru mengetahui cara mengisytiharkan kaedah yang mengembalikan hasil pengiraan, tetapi bagaimanakah kita menghasilkan keputusan ini dalam kaedah itu sendiri?

Kenyataan itu returnmembantu kami di sini sekali lagi. Meluluskan hasil daripada kaedah kelihatan seperti ini:

return value;

Di manakah returnkenyataan yang menamatkan kaedah serta-merta. Dan value adalah nilai yang kaedah itu kembali kepada kaedah panggilan apabila ia keluar. Jenis valuemesti sepadan dengan yang typedinyatakan dalam pengisytiharan kaedah.

Contoh 1. Kaedah mengira minimum dua nombor:

int min(int a, int b)
{
   if (a < b)
     return a;
   else
     return b;
}
Kaedah ini mengembalikan minimum dua nombor.

Jika a < b
kembali a
Jika tidak
kembalib

Contoh 2. Kaedah menduplikasi rentetan yang dihantar kepadanya nmasa:

String multiple(String str, int times)
{
   String result = "";
   for (int i = 0; i < times; i++)
     result = result + " "+ str;
   return result;
}
Kaedah ini mengambil dua parameter — rentetan dan bilangan kali rentetan itu perlu diulang.
Rentetan kosong dibuat untuk hasil masa hadapan.

Dalam gelung dengan timeslelaran, ruang dan strrentetan ditambahkan pada resultrentetan.

Rentetan resultdikembalikan sebagai hasil kaedah.

Contoh 3: Kaedah mengira maksimum dua nombor menggunakan pengendali ternary:

int max(int a, int b)
{
   return (a > b ? a : b);
}
Kaedah ini mengembalikan maksimum dua nombor.

kembali (jika a > b, maka a, sebaliknya b)