1. Ang returnpahayag

Sa tingin mo natutunan mo na ang lahat tungkol sa mga pamamaraan ng Java? Anuman ang iniisip mong alam mo, hindi mo pa rin alam ang kalahati nito.

Magsimula tayo sa isang bagay na simple. Halimbawa, ang Java ay may return statement na hinahayaan kang agad na wakasan ang paraan na tumatawag dito. Narito ang pahayag:

return;

Ito ay simple: ang nag-iisang salita returnna sinusundan ng isang tuldok-kuwit. Sa sandaling isagawa ng programa ang pahayag na ito, lalabas kaagad ang kasalukuyang pamamaraan, at magpapatuloy ang pagtawag.

Kung returntinawag sa mainpamamaraan, pagkatapos mainay agad na magtatapos ang pamamaraan, at kasama nito ang buong programa.

Halimbawa:

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


Pinupuno ng fill pamamaraan ang bahagi ng naipasa na array ng value.
Ang bahagi ng array na pupunan ay tinutukoy ng mga indeks from at to.
Kung from mas mababa sa 0o kung to mas malaki kaysa sa haba ng array, pagkatapos ay magtatapos kaagad ang pamamaraan.

Ang programa sa itaas ay may fillparaan na pumupuno sa array na ipinasa dito ng value. Hindi nito pinupunan ang buong hanay, tanging ang bahaging tinukoy ng mga indeks fromat to.

Sa simula ng fill pamamaraan, sinusuri ang mga naipasa na halaga upang matiyak na wasto ang mga ito. Kung frommas mababa sa 0, o kung to mas malaki kaysa sa haba ng array, pagkatapos ay fillmagwawakas kaagad ang pamamaraan (nagpapatupad ng isang returnpahayag).

Ang pahayag na ito returnay kapaki-pakinabang: halos lahat ng pamamaraan sa Java ay may isa, at narito kung bakit.



2. Mga pamamaraan na may resulta,void

Tandaan na minsan nating nalaman na may mga pahayag, at may mga ekspresyon . Ang isang expression, hindi tulad ng isang pahayag, ay may isang halaga na maaaring magamit sa isang lugar.

At, sa Java, ang mga pamamaraan ay maaaring magkaroon ng halaga . At ito ay napakagandang balita: ang mga pamamaraan ay hindi lamang nagagawa ng isang bagay batay sa mga parameter ng pag-input, ngunit din, halimbawa, upang suriin ang isang bagay at ibalik ang resulta ng pagkalkula .

Sa pamamagitan ng paraan, nakatagpo ka na ng mga ganitong pamamaraan:

double delta = Math.abs(d1 - d2);
Ang abs()pamamaraan ay nagbabalik ng doble
Scanner console = new Scanner(System.in);
int x = console.nextInt();

Ang nextInt()pamamaraan ay nagbabalik ng isangint
String str = "Hello";
String s2 = str.toUpperCase();

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

Ang copyOf()pamamaraan ay nagbabalik ng isangint[]

Ang bawat pamamaraan ay maaari lamang magbalik ng isang halaga ng isang paunang natukoy na uri. Ang uri ng pagbabalik ay tinutukoy kapag ang pamamaraan ay ipinahayag:

public static Type name(parameters)
{
  method body
}

Nasaan name ang pangalan ng pamamaraan, parameters ang listahan ng mga parameter ng pamamaraan, at type ang uri ng resulta na ibinalik ng pamamaraan.

Para sa mga pamamaraan na walang ibinalik, mayroong isang espesyal na uri ng placeholder: void.

Nagsusulat ka ba ng sarili mong pamamaraan at ayaw mong ibalik ang anuman sa paraan ng pagtawag? Ideklara lamang ang uri ng pamamaraan bilang void, at malulutas ang problema. Mayroon ding maraming mga pamamaraan tulad nito sa Java.


3. Pagbabalik ng resulta

Naisip lang namin kung paano magdeklara ng isang pamamaraan na nagbabalik ng resulta ng isang pagkalkula, ngunit paano namin ireresulta ang resultang ito sa mismong pamamaraan?

Ang returnpahayag ay tumutulong sa amin dito muli. Ang pagpasa ng resulta mula sa isang pamamaraan ay ganito:

return value;

Nasaan returnang isang pahayag na nagwawakas kaagad sa pamamaraan. At value ang halaga na ibinabalik ng pamamaraan sa paraan ng pagtawag kapag lumabas ito. Ang uri ng valueay dapat tumugma sa typetinukoy sa deklarasyon ng pamamaraan.

Halimbawa 1. Kinakalkula ng pamamaraan ang minimum na dalawang numero:

int min(int a, int b)
{
   if (a < b)
     return a;
   else
     return b;
}
Ibinabalik ng pamamaraan ang pinakamababang dalawang numero.

Kung a < b
bumalik a
Kung hindi
bumalikb

Halimbawa 2. Kino-duplicate ng pamamaraan ang string na ipinasa dito sa nmga oras:

String multiple(String str, int times)
{
   String result = "";
   for (int i = 0; i < times; i++)
     result = result + " "+ str;
   return result;
}
Ang pamamaraan ay tumatagal ng dalawang parameter - isang string at ang dami ng beses na dapat ulitin ang string.
Ang isang walang laman na string ay nilikha para sa hinaharap na resulta.

Sa isang loop na may timesmga pag-ulit, isang puwang at ang strstring ay idinagdag sa resultstring.

Ang string resultay ibinalik bilang resulta ng pamamaraan.

Halimbawa 3: Kinakalkula ng pamamaraan ang maximum na dalawang numero gamit ang ternary operator:

int max(int a, int b)
{
   return (a > b ? a : b);
}
Ibinabalik ng pamamaraan ang maximum na dalawang numero.

bumalik (kung a > b, kung gayon a, kung hindi b)