"สวัสดี Amigo! วันนี้เราจะพูดถึงแพ็คเกจ"
"ไฟล์ในคอมพิวเตอร์ถูกจัดกลุ่มเป็นโฟลเดอร์ คลาสใน Java (ทุกคลาสจะถูกจัดเก็บไว้ในไฟล์แยกต่างหาก) จะถูกจัดกลุ่มเป็นแพ็คเกจ ซึ่งสอดคล้องกับโฟลเดอร์ในฮาร์ดไดรฟ์ดังนั้น จึงไม่มีอะไรใหม่ที่นี่ มีสองสิ่งที่ฉัน อยากจะชี้ให้เห็น"
" อย่างแรกชื่อเต็มเฉพาะของคลาสประกอบด้วยชื่อแพ็คเกจบวกกับชื่อคลาสนี่คือตัวอย่างบางส่วน:"
ชื่อเต็มไม่ซ้ำใคร | ชื่อแพ็คเกจ | ชื่อชั้น |
---|---|---|
java.io.FileInputStream | java.io | FileInputStream |
java.lang.String | java.lang | สตริง |
java.util.ArrayList | java.util | รายการอาร์เรย์ |
org.apache.tomcat.Servlet | org.apache.tomcat | เซิร์ฟเล็ต |
แมว | ไม่ได้ระบุ | แมว |
"ชื่อเต็มของคลาสจะไม่ซ้ำกันเสมอ"
"คงเป็นเรื่องที่น่าปวดหัวหากเราต้องเขียนชื่อยาว เช่นjava.util.ArrayListทุกครั้ง นั่นคือเหตุผลที่ Java อนุญาตให้คุณนำเข้าคลาส คุณสามารถใช้ชื่อย่อของคลาสอื่นในโค้ดของคุณได้ แต่ที่จุดเริ่มต้นของ ชั้นเรียนของคุณ คุณต้องระบุอย่างชัดเจนว่าจะใช้ชั้นเรียนใด"
"คุณทำอย่างนั้นได้อย่างไร"
"ด้วยบรรทัดที่มีลักษณะดังนี้: import java.util.ArrayList;
"
"เมื่อเริ่มต้นคลาส ทันทีหลังจากประกาศแพ็คเกจ คุณสามารถระบุได้ว่าคุณกำลังอ้างถึงคลาสใด เมื่อคุณใช้ArrayListในโค้ดของคุณ"
"เหตุใดจึงซับซ้อนเกินไป ชั้นเรียนสามารถมีชื่อเหมือนกันได้หรือไม่"
"ใช่ อาจมีคลาสที่มีชื่อเดียวกันในแพ็กเกจที่แตกต่างกันเราไม่สามารถนำเข้าคลาสที่มีชื่อเหมือนกัน 2 คลาสได้ดังนั้น เราจะต้องเรียกคลาสหนึ่งด้วยชื่อเต็ม"
"นี่เป็นการเปรียบเทียบสำหรับคุณ คุณมีเพื่อนร่วมงานชื่อจิม ไม่มีปัญหา ทุกคนรู้ว่าเขาเป็นใคร แต่ถ้ามีจิมสามคนในที่ทำงานของคุณ คุณจะต้องเรียกพวกเขาด้วยชื่อเต็มไม่ซ้ำกันเพื่อหลีกเลี่ยง ความสับสน"
" ประการที่สองจะดีกว่าเสมอที่จะวางคลาสลงในแพ็คเกจ ไม่ใช่ในโฟลเดอร์ root srcเมื่อคุณมีคลาสไม่มากนัก สิ่งนี้ไม่ใช่ปัญหา แต่เมื่อมีคลาสจำนวนมาก มันก็ง่ายที่จะผสมกัน สร้างคลาสเสมอ ภายในบรรจุภัณฑ์"
ใน Java แนวทางปฏิบัติทั่วไปคือการให้ชื่อคลาสและแพ็กเกจที่มีความหมาย หลายบริษัทออกไลบรารี (ชุดของคลาส) และตั้งชื่อตามบริษัทหรือเว็บไซต์เพื่อหลีกเลี่ยงความสับสน:"
ชื่อแพ็คเกจ | ชื่อบริษัท/โครงการ |
---|---|
องค์กร อาปาเช่ .common org อาปาเช่ .tomcat org อาปาเช่ .util |
อาปาเช่ |
คอม ออราเคิล .jdbc | ออราเคิล |
java .io จาวา x.servlet |
ซัน, ชวา |
คอม ibm.websphere | ไอบีเอ็ม, เว็บสเฟียร์ |
คอม บอส | เจบอส |
GO TO FULL VERSION