ฉันเป็นมือใหม่ในการเรียนรู้จาวา ใน Java ไฟล์ต้นฉบับทุกไฟล์ต้องมีคลาสสาธารณะและไฟล์ต้นฉบับนั้นควรมีชื่อเดียวกันกับคลาสสาธารณะนั้น นอกจากนี้ไฟล์ต้นฉบับไม่สามารถมีสองคลาสสาธารณะ ทำไมข้อ จำกัด นี้?
ฉันเป็นมือใหม่ในการเรียนรู้จาวา ใน Java ไฟล์ต้นฉบับทุกไฟล์ต้องมีคลาสสาธารณะและไฟล์ต้นฉบับนั้นควรมีชื่อเดียวกันกับคลาสสาธารณะนั้น นอกจากนี้ไฟล์ต้นฉบับไม่สามารถมีสองคลาสสาธารณะ ทำไมข้อ จำกัด นี้?
คำตอบ:
ในตอนหนึ่งของจดหมายข่าว Java ผู้เชี่ยวชาญของเขาไฮนซ์ Kabutz ขุดผ่านข้อมูลจำเพาะ Oak ภาษา เขาเขียน:
ทำไมแต่ละคลาสสาธารณะในไฟล์แยกกัน (ส่วนที่ 1)
นี่เป็นคำถามที่ฉันถูกถามบ่อยๆระหว่างเรียน ถึงตอนนี้ฉันยังไม่มีคำตอบที่ดีสำหรับคำถามนี้ ในส่วนที่ 1 เราอ่านว่า: "แม้ว่ายูนิตการรวบรวม Oak แต่ละหน่วยสามารถมีหลายคลาสหรืออินเตอร์เฟซ แต่คลาสหรือส่วนต่อประสานส่วนใหญ่ต่อหนึ่งหน่วยการรวบรวมสามารถเป็นสาธารณะได้"
ในแถบด้านข้างอธิบายว่าทำไม: "ข้อ จำกัด นี้ยังไม่ได้บังคับใช้โดยคอมไพเลอร์แม้ว่าจะจำเป็นสำหรับการนำเข้าแพ็คเกจที่มีประสิทธิภาพ"
เห็นได้ชัดว่าสวย - เหมือนสิ่งส่วนใหญ่เมื่อคุณรู้เหตุผลการออกแบบ - คอมไพเลอร์จะต้องเพิ่มการส่งผ่านหน่วยการคอมไพล์ (ไฟล์. java) ทั้งหมดเพื่อหาว่าคลาสใดอยู่ที่ไหนและนั่นจะทำให้การคอมไพล์ช้าลง .
เหตุผลที่ฉันคิดได้