Coretan kuliah dengan mentor sebagai sebahagian daripada kursus Universiti Codegym. Daftar untuk kursus penuh.


"Awak lagi, Amigo. Nah, hello."

"Nampaknya awak tidak begitu gembira melihat saya, Diego?"

"Saya mendapat tanggapan bahawa anda berfikir bahawa anda telah mempelajari segala-galanya yang perlu diketahui tentang kaedah di Jawa."

"Oh, saya tidak..."

"Saya tidak fikir begitu! Anda tidak tahu separuh daripadanya."

"Sudah tentu, saya tidak menghina...

"Baiklah, cukup bercakap. Sudah tiba masanya untuk bermula. Dan kita akan mulakan dengan sesuatu yang mudah. ​​Sebagai contoh, fakta bahawa Java mempunyai penyataan pemulangan . Ia membolehkan anda menamatkan serta-merta kaedah di mana ia dipanggil. Berikut ialah pernyataan:

return;

"Ia mudah: perkataan bersendirian returndiikuti dengan koma bernoktah. Sebaik sahaja program melaksanakan pernyataan ini, kaedah semasa keluar dan kaedah panggilan diteruskan.

"Jika returndipanggil dalam mainkaedah, maka mainkaedah itu 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.

"Atur cara 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 tolebih besar daripada panjang tatasusunan, maka fillkaedah ditamatkan serta-merta (melaksanakan returnpernyataan)."

"Faham. Adakah itu semua kenyataan ini?"

"Sebenarnya, returnkenyataan itu lebih berguna daripada yang anda fikirkan. Ia sangat berguna sehingga ia ditemui dalam hampir setiap kaedah di Jawa. Dan sekarang saya akan membawa anda kepada pemahaman mengapa ini berlaku.

Kaedah dengan hasil,void

"Anda mungkin ingat bahawa ada kenyataan, dan ada ungkapan . Apakah perbezaan antara mereka?"

"Kalau tak silap, ungkapan, tidak seperti kenyataan, mempunyai makna yang boleh digunakan di suatu tempat."

"Betul. Dan, dalam Java, kaedah juga 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 namenama kaedah, parameterssenarai parameter kaedah, dan typejenis hasil yang kaedah itu kembalikan.

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

"Dalam erti kata lain, jika saya menulis kaedah saya dan tidak mahu mengembalikan apa-apa, maka saya mengisytiharkan jenis kaedah itu void, dan itu sahaja?"

"Ya. Dan, saya juga mesti mengatakan bahawa Java mempunyai banyak kaedah sedemikian.

Mengembalikan keputusan

"Saya memikirkan cara untuk mengisytiharkan kaedah yang mengembalikan hasil pengiraan/kerja. Bagaimanakah cara saya mengembalikan hasil daripada kaedah itu sendiri?"

"Itu soalan yang sah. returnKenyataan itu membantu kami di sini sekali lagi. Meluluskan hasil daripada kaedah kelihatan seperti ini:

return value;

" returnPernyataan itu akan menamatkan kaedah serta-merta. Dan valueadakah kaedah itu harus kembali kepada kaedah panggilan apabila ia keluar. Jenis valuemesti sepadan dengan yang Typedinyatakan dalam pengisytiharan kaedah. Berikut ialah beberapa contoh untuk mengukuhkan perkara yang telah anda pelajari:

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 rentetan strditambahkan pada rentetan result.
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)

"Cemerlang. Kaedah adalah kuasa besar baru saya!"

"Hanya jika anda cukup berlatih dalam tugasan tangan. Berulang-ulang."