ตัวอย่างการบรรยายพร้อมผู้ให้คำปรึกษาซึ่งเป็นส่วนหนึ่งของหลักสูตร Codegym University ลงทะเบียนสำหรับหลักสูตรเต็ม


"คุณอีกแล้ว Amigo สวัสดี"

“ดูเหมือนคุณไม่มีความสุขเลยที่เจอฉัน ดิเอโก?”

"ฉันรู้สึกประทับใจที่คุณคิดว่าคุณได้เรียนรู้ทุกอย่างที่ควรรู้เกี่ยวกับวิธีการใน Java แล้ว"

“เอ่อ ฉันไม่...”

"ฉันไม่คิดอย่างนั้น! คุณไม่รู้ด้วยซ้ำว่าครึ่งหนึ่ง"

“แน่นอน ฉันไม่รังเกียจ...

"เอาล่ะ พูดมามากพอแล้ว ได้เวลาเริ่มแล้ว และเราจะเริ่มด้วยสิ่งง่ายๆ ตัวอย่างเช่น การที่ Java มีคำสั่งreturnช่วยให้คุณสามารถยุติเมธอดที่เรียกใช้ได้ทันที นี่คือคำสั่ง:

return;

"มันง่าย: คำเดี่ยวreturnตามด้วยเครื่องหมายอัฒภาค ทันทีที่โปรแกรมดำเนินการคำสั่งนี้ วิธีการปัจจุบันจะออกจากวิธีการและวิธีการเรียกจะดำเนินต่อไป

"หากreturnถูกเรียกในmainเมธอด เมธอดmainจะสิ้นสุดทันที และด้วยเมธอดทั้งหมด

ตัวอย่าง:

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);
   }
}
เมธอดfill เติมส่วนหนึ่งของอาร์เรย์ที่ส่งผ่านด้วยvalue.

ส่วนของอาร์เรย์ที่จะเติมถูกกำหนดโดยดัชนีfrom และ ถ้า น้อยกว่าหรือ  มากกว่าความยาวของอาร์เรย์ เมธอดจะยุติทันทีto

from0to

"โปรแกรมด้านบนมีเมธอดfillที่เติมอาร์เรย์ที่ส่งด้วย มันvalueไม่ได้เติมอาร์เรย์ทั้งหมด เฉพาะส่วนที่ระบุโดยดัชนีfromและto

"ที่จุดเริ่มต้นของfillเมธอด ค่าที่ส่งผ่านจะถูกตรวจสอบเพื่อให้แน่ใจว่ามีค่า ถ้าfromน้อยกว่า 0 หรือถ้าtoมากกว่าความยาวของอาร์เรย์ เมธอดfillจะยุติทันที (ดำเนินreturnการคำสั่ง)"

"เข้าใจแล้ว คำกล่าวนี้ใช้ทั้งหมดหรือไม่"

"จริง ๆ แล้วreturnstatement มีประโยชน์มากกว่าที่คุณคิด มันมีประโยชน์มากจนพบได้ในเกือบทุกเมธอดใน Java และตอนนี้ฉันจะอธิบายให้คุณเข้าใจว่าเหตุใดจึงเป็นเช่นนั้น

วิธีการที่มีผลvoid

"คุณคงจำได้ว่ามีคำสั่งและมีการแสดงออกความแตกต่างระหว่างพวกเขาคืออะไร"

"ถ้าฉันจำไม่ผิด สำนวนที่ไม่เหมือนประโยคบอกเล่า มีความหมายที่นำไปใช้ที่ไหนก็ได้"

"ถูกต้อง และใน Java เมธอดก็สามารถมีค่าได้เช่นกัน และนี่เป็นข่าวดีมาก เมธอดไม่เพียงแต่สามารถทำบางสิ่งตามพารามิเตอร์ที่ป้อนเท่านั้น แต่ยังสามารถประเมินบางสิ่งและส่งคืนผลลัพธ์ของ การคำนวณ

"อย่างไรก็ตาม คุณได้พบกับวิธีการดังกล่าวแล้ว:

double delta = Math.abs(d1 - d2);
วิธีabs()การคืนค่าสองเท่า
Scanner console = new Scanner(System.in);
int x = console.nextInt();

เมธอดnextInt()จะคืนค่า anint
String str = "Hello";
String s2 = str.toUpperCase();
เมธอดtoUpperCase()จะคืนค่า aString
int[] data = {1, 4, 5, 6, 7, 8, 11};
int[] array = Arrays.copyOf(data, 4);

เมธอดcopyOf()จะคืนค่า anint[]

"แต่ละเมธอดสามารถคืนค่าหนึ่งค่าของประเภทที่กำหนดไว้ล่วงหน้าหนึ่งประเภท เท่านั้น ประเภทการส่งคืนจะถูกกำหนดเมื่อมีการประกาศเมธอด:

public static Type name(parameters)
{
  method body
}

nameชื่อของเมธอดอยู่ที่ไหนparametersคือรายการของพารามิเตอร์เมธอด และtypeเป็นชนิดของผลลัพธ์ที่เมธอดส่งคืน

สำหรับเมธอดที่ไม่คืนค่าใดๆ จะมีประเภทตัวยึดพิเศษvoid:

"กล่าวอีกนัยหนึ่ง ถ้าฉันเขียนเมธอดของฉันและไม่ต้องการส่งคืนสิ่งใด ฉันจึงประกาศประเภทของเมธอดเป็นvoidและนั่นคืออะไร"

"ใช่ และฉันต้องบอกว่า Java มีวิธีการดังกล่าวค่อนข้างมาก

ส่งคืนผลลัพธ์

"ฉันทราบวิธีการประกาศวิธีการที่ส่งคืนผลลัพธ์ของการคำนวณ/งาน ฉันจะส่งคืนผลลัพธ์จากวิธีการนั้นได้อย่างไร"

"นั่นเป็นคำถามที่ถูกต้อง คำreturnสั่งช่วยเราที่นี่อีกครั้ง การส่งผ่านผลลัพธ์จากเมธอดมีลักษณะดังนี้:

return value;

" returnคำสั่งจะยุติเมธอดทันที และvalueคือสิ่งที่เมธอดควรกลับไปใช้เมธอดที่เรียกใช้เมื่อออกจากเมธอด ประเภทของvalueต้องตรงกับที่Typeระบุในการประกาศเมธอด นี่คือตัวอย่างบางส่วนเพื่อเสริมสิ่งที่คุณได้เรียนรู้:

ตัวอย่างที่ 1 วิธีการคำนวณจำนวนขั้นต่ำสองจำนวน:

int min(int a, int b)
{
   if (a < b)
     return a;
   else
     return b;
}
เมธอดส่งคืนค่าต่ำสุดของตัวเลขสองตัว

ถ้าa < b
กลับa
มิฉะนั้น
กลับb

ตัวอย่างที่ 2 เมธอดทำซ้ำสตริงที่ส่งผ่านไปยังnครั้ง:

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

   for (int i = 0; i < times; i++);
     result = result + " "+ str;
   return result;
}
วิธีการใช้สองพารามิเตอร์ — สตริงและจำนวนครั้งที่ควรทำซ้ำสตริง
สตริงว่างถูกสร้างขึ้นสำหรับผลลัพธ์ในอนาคต

ในลูปที่มี การวน ซ้ำtimesช่องว่างและสตริงstrจะถูกเพิ่มเข้าไปในสตริง สตริงจะถูกส่งกลับเป็นผลลัพธ์ของเมธอดresult
result

ตัวอย่างที่ 3: วิธีการคำนวณจำนวนสูงสุดสองตัวโดยใช้ตัวดำเนินการ ternary:

int max(int a, int b)
{
   return (a > b ? a : b);
}
เมธอดส่งคืนค่าสูงสุดสองจำนวน

กลับ (ถ้าa > bแล้วaมิฉะนั้นb)

"ยอดเยี่ยม วิธีการคือพลังพิเศษใหม่ของฉัน!"

"เฉพาะในกรณีที่คุณฝึกฝนมากพอในการทำงานจริง ซ้ำไปซ้ำมา"