0Pricing
Java Academy · บทเรียน

module-info.java

ประกาศมอดูล

module-info.java เป็นบทเรียน Java Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Java Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Java Academy มีบทเรียนทั้งหมด 4 บทเรียน

ระบบโมดูล

ระบบโมดูลแพลตฟอร์ม Java (JPMS) ซึ่งเปิดตัวใน Java 9 ช่วยให้คุณจัดกลุ่มแพ็กเกจเป็น โมดูลที่มีชื่อ พร้อมการพึ่งพาและขอบเขตที่ระบุไว้อย่างชัดเจน

การประกาศจะอยู่ในไฟล์พิเศษ: module-info.java

เหตุผลที่ต้องใช้โมดูล

ก่อนมีโมดูล เส้นทางคลาสเป็นเพียงกลุ่มไฟล์เก็บถาวรที่ไม่มีโครงสร้าง ทุกคนสามารถเข้าถึงคลาสสาธารณะใดก็ได้ และการพึ่งพาที่ขาดหายไปจะปรากฏเฉพาะขณะเรียกใช้เท่านั้น

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

ตำแหน่งของ module-info

module-info.java อยู่ที่ รากของต้นไม้ซอร์ส เหนือไดเรกทอรีแพ็กเกจต่าง ๆ ไฟล์นี้จะคอมไพล์เป็น module-info.class ที่รากของโมดูล

แต่ละโมดูลมีไฟล์นี้ได้เพียงหนึ่งไฟล์เท่านั้น

การประกาศแบบน้อยที่สุด

โมดูลที่เรียบง่ายที่สุดมีเพียงชื่อเดียว ตามธรรมเนียม ชื่อจะใช้รูปแบบ DNS ย้อนกลับ เช่นเดียวกับชื่อแพ็กเกจ

module com.example.app {
}

การประกาศการพึ่งพา

ใช้ requires เพื่อระบุการพึ่งพาโมดูลอื่น โมดูลทุกโมดูลจะพึ่งพา java.base โดยปริยาย ดังนั้นคุณจึงไม่ต้องประกาศโมดูลนี้

module com.example.app {
    requires java.sql;
    requires java.logging;
}

การเปิดเผยแพ็กเกจ

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

module com.example.app {
    exports com.example.app.api;
}

การห่อหุ้มอย่างเข้มงวด

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

แพ็กเกจภายในยังคงเป็นแพ็กเกจภายใน โดยมี JVM เป็นผู้บังคับใช้

กฎการตั้งชื่อโมดูล

ชื่อโมดูลใช้กฎการเขียนชื่อแบบเดียวกับแพ็กเกจ คือเป็นตัวระบุที่คั่นด้วยจุด โปรดเลือกชื่อที่มั่นคงและไม่ซ้ำกันทั่วโลก เพราะโมดูลอื่นจะพึ่งพาโมดูลนี้ด้วยชื่อ

การเปลี่ยนชื่อโมดูลถือเป็นการเปลี่ยนแปลงที่ทำให้ผู้ใช้โมดูลเดิมทำงานไม่ได้

ตัวอย่างที่สมบูรณ์ยิ่งขึ้น

การประกาศจริงจะรวมการระบุสิ่งที่ต้องพึ่งพาและการเปิดเผยแพ็กเกจเข้าด้วยกัน โมดูลนี้พึ่งพาการบันทึกการทำงาน และเปิดเผยเฉพาะแพ็กเกจส่วนเชื่อมต่อสาธารณะของตน

module com.example.orders {
    requires java.logging;
    requires com.example.payments;

    exports com.example.orders.api;
}

การคอมไพล์โมดูล

คุณคอมไพล์โดยใช้ตัวเลือกที่รองรับโมดูล ตัวเลือก --module-source-path และ -d จะบอกคอมไพเลอร์ว่าแหล่งซอร์สและผลลัพธ์อยู่ที่ใด

  • javac -d out --module-source-path src $(find src -name '*.java')
  • java --module-path out --module com.example.app/com.example.app.Main

พาธโมดูล

ระบบจะค้นหาโมดูลจาก พาธโมดูล (--module-path) ซึ่งเป็นสิ่งที่มาแทนคลาสพาธและรองรับโมดูล ตัวเรียกใช้จะอ่านตัวบอกข้อมูลของแต่ละโมดูลเพื่อสร้างกราฟการพึ่งพาก่อนเริ่มทำงาน

ตรวจสอบอย่างรวดเร็ว

ลองทบทวนการมองเห็นเริ่มต้นของแพ็กเกจ

สรุปทบทวน

คุณได้เรียนรู้พื้นฐานของ module-info.java ดังนี้:

  • มีตัวบอกข้อมูลหนึ่งรายการต่อโมดูลที่รากของซอร์ส
  • requires ใช้ประกาศการพึ่งพา โดยมี java.base เป็นสิ่งที่รวมให้โดยปริยาย
  • exports ใช้เปิดเผยแพ็กเกจ ส่วนอื่นทั้งหมดจะถูกห่อหุ้ม
  • สร้างและเรียกใช้ด้วย --module-path และ --module

ถัดไป: คำสั่งระบุการพึ่งพาและการเปิดเผยแพ็กเกจโดยละเอียด

คำถามที่พบบ่อย

บทเรียน “module-info.java” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “module-info.java” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Java Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Java Academy มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “module-info.java”

ประกาศมอดูล คุณปฏิบัติ Java Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Java Academy หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน Java Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน

บทเรียน “module-info.java” ใช้เวลานานแค่ไหน

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

ฉันเขียนและรันโค้ดในบทเรียน Java Academy นี้ได้ไหม

ได้ บทเรียน Java Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. module-info.java
  2. requires และ exports
  3. บริการด้วย provides/uses
  4. การย้ายไปใช้มอดูล
← กลับไปที่ Java Academy