1. ฟังก์ชัน/เมธอดในภาษาจาวา

คุณได้เรียนรู้คำสั่ง Java มากมายแล้ว ซึ่งหมายความว่าคุณสามารถเขียนโปรแกรมที่ค่อนข้างซับซ้อนได้ โค้ด 10, 20, 30 บรรทัดในโปรแกรมไม่ใช่โปรแกรมที่ใหญ่มากใช่ไหม

แต่โปรแกรมที่มีมากกว่า 100+ ตอนนี้มีขนาดใหญ่ และอาจค่อนข้างยากที่จะเข้าใจโค้ด มีอะไรที่คุณสามารถทำได้เพื่อลดความซับซ้อนในการเขียนและอ่านโปรแกรมที่มีโค้ดจำนวนมากหรือไม่?

ใช่ และวิธีการ (หรือฟังก์ชั่น) จะช่วยเราในเรื่องนี้

วิธีการคืออะไร? กล่าวอย่างง่ายๆ เมธอดคือกลุ่มของคำสั่งที่มีชื่อเฉพาะ กล่าวอีกนัยหนึ่งคือเราใส่คำสั่งหลายคำสั่งลงในกลุ่มเดียวและตั้งชื่อเฉพาะให้กับมัน และนั่นคือวิธีการพร้อมแล้ว

ตัวอย่าง:

โดยไม่มีวิธีการ ด้วยวิธีการ
class Solution
{
   public static void main(String[] args)
   {
     System.out.print("Wi-");
     System.out.println("Fi");
     System.out.print("Wi-");
     System.out.println("Fi");

     System.out.print("Wi-");
     System.out.println("Fi");
   }
}
class Solution
{
   public static void main(String[] args)
   {
     printWiFi();
     printWiFi();
     printWiFi();
   }
   public static void printWiFi()
   {
     System.out.print("Wi-");
     System.out.println("Fi");
   }
}

ในโปรแกรมในคอลัมน์ด้านซ้าย เราใช้รหัสเดิมซ้ำสามครั้ง — เราทำสิ่งนี้โดยเจตนาเพื่อแสดงประเด็น แต่ในโปรแกรมทางด้านขวา เราได้ย้ายโค้ดที่ซ้ำกันไปยังเมธอดที่แยกจากกันและตั้งชื่อเฉพาะprintWiFi

และแทนที่จะเป็น relocated code เราเรียกprintWiFi()method 3 ครั้ง

เมื่อรันโปรแกรมในคอลัมน์ทางขวา ทุกครั้งที่printWiFi()ดำเนินการเมธอด คำสั่งทั้งหมดภายในprintWiFi()เมธอดจะถูกดำเนินการ เราเพิ่งสร้างคำสั่งใหม่ (เมธอด) รวมหลายคำสั่งไว้ในกลุ่มเดียว

รหัสใด ๆ สามารถแบ่งออกเป็นวิธีการแยกกัน สิ่งนี้ทำเพื่อทำให้สิ่งต่าง ๆ ง่ายขึ้น: แนวคิดคือการมีวิธีการเล็ก ๆ มากมายดีกว่าวิธีการใหญ่ ๆ ในไม่ช้าคุณจะประหลาดใจว่ามีครั้งหนึ่งที่คุณเขียนโปรแกรมของคุณเองโดยไม่ได้เขียนวิธีการของคุณเอง


2. การประกาศวิธีการใน Java

แล้วคุณจะเขียนวิธีการของคุณอย่างไรให้ถูกต้อง?

public static void name()
{
  method body
}

มีความแตกต่างมากมายที่ต้องพิจารณาเมื่อประกาศ (สร้าง) วิธีการ แต่เราจะเริ่มต้นด้วยพื้นฐาน เราจะประกาศวิธีที่ง่ายที่สุดได้อย่างไร? การประกาศวิธีการอย่างง่ายมีลักษณะดังนี้:

name ชื่อเฉพาะของเมธอดอยู่ที่ไหน และ method bodyแสดงถึงคำสั่งที่ประกอบเป็นเมธอด ความหมายของคำpublicว่าstatic, และvoidจะกล่าวต่อไป.

หลังจากที่เราสร้างเมธอดแล้ว เราสามารถเรียกใช้เมธอดอื่นๆ ของเราได้ การเรียกใช้เมธอดมีลักษณะดังนี้:

name();

nameชื่อเฉพาะของเมธอดที่เราต้องการเรียกใช้คือเมธอดที่มีคำสั่งที่เราต้องการดำเนินการเมื่อเราไปถึงการเรียกเมธอด

เมื่อโปรแกรมถึงการเรียกเมธอด มันจะเข้าสู่เมธอด ดำเนินการคำสั่งทั้งหมด กลับสู่เมธอดเดิม และดำเนินการต่อไป

อย่างที่คุณอาจเดาได้ในตอนนี้ คำสั่งส่วนใหญ่ที่เราได้เรียนรู้จนถึงตอนนี้เป็นเพียงวิธีการที่เขียนโดยโปรแกรมเมอร์คนอื่นๆ เพื่อทำให้ชีวิตของเราง่ายขึ้น: , , ฯลฯSystem.out.println()Thread.sleep()

เมธอดอาจมีการเรียกเมธอดอื่น:

รหัส บันทึก
class Solution
{
   public static void main(String[] args)
   {
     printWiFi10Times();
   }

   public static void printWiFi10Times()
   {
     for (int i = 0; i < 10; i++)
       printWiFi();
   }

   public static void printWiFi()
   {
     System.out.print("Wi-");
     System.out.println("Fi");
   }
}




เรียกprintWiFi10Times()เมธอด


ประกาศprintWiFi10Timesเมธอด


เรียกprintWiFi() เมธอด 10 ครั้งติดต่อกัน


ประกาศprintWiFiเมธอด

แสดงข้อความบนหน้าจอ:
Wi-Fi

3. ข้อเท็จจริงเกี่ยวกับวิธีการ

ต่อไปนี้เป็นข้อเท็จจริงเพิ่มเติมเกี่ยวกับวิธีการ:

ข้อเท็จจริง 1. เมธอดเป็นส่วนหนึ่งของคลาสเสมอ

เมธอดสามารถประกาศได้ในคลาสเท่านั้น ไม่สามารถประกาศเมธอดในเมธอดอื่นได้ ไม่สามารถประกาศเมธอดนอกคลาสได้

ความจริง 2. ชื่อของเมธอดไม่มีความหมายศักดิ์สิทธิ์

ไม่สำคัญว่าจะเรียกเมธอดใด — ซึ่งไม่มีผลใดๆ วิธีการหลักก็เหมือนกับวิธีการอื่นๆ เพียงแค่ชื่อนี้ถูกเลือกสำหรับวิธีการที่เครื่อง Java จะเริ่มการทำงานของโปรแกรม ไม่มีอะไรวิเศษเกี่ยวกับมัน

ข้อเท็จจริงที่ 3 ลำดับของเมธอดในคลาสไม่สำคัญ

คุณสามารถเขียนเมธอดของคุณในคลาสในลำดับใดก็ได้ — สิ่งนี้จะไม่ส่งผลกระทบต่อการทำงานของโปรแกรมแต่อย่างใด ตัวอย่าง:

รหัส
class Solution
{
   public static void printWiFi10Times()
   {
     for (int i = 0; i < 10; i++)
       printWiFi();
   }
   
   public static void main(String[] args)
   {
     printWiFi10Times();
   }

   public static void printWiFi()
   {
     System.out.print("Wi-");
     System.out.println("Fi");
   }
}
class Solution
{
   public static void printWiFi()
   {
     System.out.print("Wi-");
     System.out.println("Fi");
   }

   public static void printWiFi10Times()
   {
     for (int i = 0; i < 10; i++)
       printWiFi();
   }
   public static void main(String[] args)
   {
     printWiFi10Times();
   }
}

ความจริงข้อที่ 4 ตัวแปรภายในเมธอดหนึ่งไม่เกี่ยวข้องกับตัวแปรของเมธอดอื่นแต่อย่างใด

สิ่งที่เกิดขึ้นในเวกัสอยู่ในเวกัส. และตัวแปรที่ประกาศภายในเมธอดจะอยู่ภายในเมธอด

ตัวแปรที่มีชื่อเดียวกันสามารถประกาศได้สองวิธีติดกัน และตัวแปรเหล่านี้ไม่เกี่ยวข้องกันแต่อย่างใด


4. ชื่อเมธอด

เป็นที่ทราบกันมานานแล้วว่าปัญหาที่ยากที่สุดสองประการในการเขียนโปรแกรมคือการเลือกชื่อที่เหมาะสมสำหรับวิธีการและการเลือกชื่อที่เหมาะสมสำหรับตัวแปร

อันที่จริง วิทยาศาสตร์เกือบทั้งหมดได้เกิดขึ้นแล้วเกี่ยวกับวิธีการตั้งชื่อเมธอดอย่างถูกต้อง และแต่ละภาษาโปรแกรมก็มีมาตรฐานของตัวเอง ใน Java เป็นธรรมเนียมที่ต้องปฏิบัติตามหลักการเหล่านี้:

หลักการ 1.ชื่อเมธอดควรอธิบายสั้น ๆ ว่าเมธอดทำอะไร

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

Recall ใช้เพื่อ 'ทำให้โปรแกรมเข้าสู่โหมดสลีป' และใช้เพื่อ 'อ่านจำนวนเต็มถัดไป' สะดวกใช่ไหม?Thread.sleep()Scanner.nextInt()

หลักการที่ 2ชื่อเมธอดสามารถเป็นได้หลายคำ

อย่างไรก็ตาม มีข้อจำกัดหลายประการเมื่อทำเช่นนี้:

  • คุณไม่สามารถมีช่องว่างในชื่อเมธอด: คำทั้งหมดจะถูกเขียนเข้าด้วยกัน
  • แต่ละคำเป็นตัวพิมพ์ใหญ่ ยกเว้นคำแรก
  • ชื่อเมธอดจะขึ้นต้นด้วยตัวพิมพ์เล็กเสมอ

จำprintWiFi10Timesวิธีการ ชื่อนั้นหมายความว่าอย่างไร? "แสดงคำว่า 'WiFi' 10 ครั้ง" คุณไม่ควรใส่คำจำนวนมากในชื่อเมธอด: ชื่อควรสะท้อนถึงแก่นแท้ของเมธอด

มาตรฐานสำหรับวิธีการตั้งชื่อนี้เรียกว่า CamelCase (ตัวพิมพ์ใหญ่จะเหมือนกับโหนกของอูฐ)

หลักการที่ 3 ชื่อวิธีการขึ้นต้นด้วยกริยา

เมธอดทำหน้าที่บางอย่างเสมอ ดังนั้น คำแรกในชื่อเมธอดจึงเป็นการกระทำเสมอ

ต่อไปนี้เป็นชื่อเสียสำหรับเมธอด: home, cat, car, train, ...;

ชื่อที่ดีคือ: run, execute, print, read, write, ...

หลักการที่ 4 ใช้ตัวอักษรและตัวเลขละตินเท่านั้น

Java มีการสนับสนุนที่ยอดเยี่ยมสำหรับภาษาต่างๆ คุณสามารถเขียนชื่อตัวแปร เมธอด และคลาสในภาษารัสเซียและภาษาจีน — ทุกอย่างจะได้ผล!

แต่! คุณจะต้องเรียน Java นานเท่าไหร่ ถ้าSystem.out.println()วิธีการเขียนเป็นภาษาจีน? นานกว่าตอนนี้มากใช่ไหม? นั่นคือจุดแรก

ประการที่สอง ทีมพัฒนาซอฟต์แวร์จำนวนมากมาจากนานาชาติ ไลบรารี Java จำนวนมากถูกใช้โดยโปรแกรมเมอร์จากทั่วทุกมุมโลก

ดังนั้น ขอแนะนำให้ใช้เฉพาะตัวอักษรละตินและตัวเลขในชื่อเมธอด

สำคัญ:
ชื่อของเมธอดต้องขึ้นต้นด้วยตัวอักษร (ไม่สามารถขึ้นต้นด้วยตัวเลขได้)