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


"คุณอยู่ที่นี่แล้ว Amigo? ฉันรู้ว่าคุณได้เรียนรู้คำสั่ง 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()เมธอดจะถูกเรียกใช้งาน เราเพิ่งสร้างคำสั่งใหม่ (เมธอด) รวมหลายคำสั่งเข้าไว้ในกลุ่มเดียว

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

"เป็นความคิดที่ดีที่จะแบ่งโปรแกรมออกเป็นวิธีการ

"ในไม่ช้าคุณจะจำได้ด้วยความสงสัยว่าคุณเคยเขียนโปรแกรมโดยไม่สร้างวิธีการของคุณเองได้อย่างไร"

"ฉันพร้อมที่จะฟังและพยายามเขียนวิธีการ! แค่บอกวิธีการทำ"

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

“เราจะประกาศวิธีที่ง่ายที่สุดได้อย่างไร มีวิธีดังนี้

public static void name()
{
  method body
}

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

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

name();

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

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

"และตอนนี้ Amigo มองด้วยตาใหม่กับคำสั่งที่คุณได้เรียนรู้ไปแล้ว ตัวอย่างเช่นมีอะไรในใจเกี่ยวกับสิ่งที่เป็นจริงหรือไม่"System.out.println()

"คุณกำลังบอกว่าคำสั่งเหล่านี้เป็นเพียงวิธีการที่เขียนโดยโปรแกรมเมอร์คนอื่น ๆ "

"ไม่ใช่ทั้งหมด แต่ส่วนใหญ่ ใช่แล้ว! คนอื่น ๆ เขียนเพื่อให้ชีวิตของเราง่ายขึ้น"

" public static void main(String[] args)วิธีการก็เช่นกัน... ตอนนี้มันเข้าท่ากว่า!"

"แน่นอน มันคือการเขียนโปรแกรม! ปรากฎว่าเมธอดหลัก — อัลฟ่าและโอเมกาของโปรแกรม — อาจมีการเรียกเมธอดอื่น:

รหัส บันทึก
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");
   }
}




เราเรียกprint10TimesWiFi()เมธอด


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


เราเรียกprintWiFi() เมธอด 10 ในลูป


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

เราแสดง " Wi-Fi" บนหน้าจอ

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

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

ข้อเท็จจริง 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ตัวแปรภายในเมธอดหนึ่งไม่เกี่ยวข้องกับตัวแปรของเมธอดอื่นแต่อย่างใด

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

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

ชื่อเมธอด

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

"ฉันไม่เคยคิดว่ามันยากขนาดนี้!"

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

"ใน Java เป็นธรรมเนียมที่ต้องปฏิบัติตามหลักการเหล่านี้:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

แต่! ลองนึกดูว่าคุณจะต้องเรียนภาษาจาวานานเท่าใดหากSystem.out.println()วิธีการเขียนเป็นภาษาจีน

นานกว่าตอนนี้มากใช่ไหม? นั่นคือจุดแรก

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

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

สำคัญ:

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

"ทั้งหมดนี้เป็นหลักการพื้นฐานที่ควบคุมการตั้งชื่อเมธอดใน Java บทเรียนจบลงแล้ว ไปแก้ปัญหากันเถอะ!"

“ฉันวิ่งแล้ว ดิเอโก!”


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