แพ็คเกจ (Package)
A package is a grouping of related types providing access protection and name space management. Note that types refers to classes, interfaces, enumerations, and annotation types. Enumerations and annotation types are special kinds of classes and interfaces, respectively, so types are often referred to in this lesson simply as classes and interfaces.
แนะนำเว็บ (Web Guides)
+ jarticles.com
+ tinf2.vub.ac.be
+ sun.com ตัวอย่างการใช้ package
1 องค์ประกอบของ Package
ในอนาคต หากมี .class หลายร้อยแฟ้ม และเก็บแยก directory อย่างเป็นระเบียบ เช่น ห้อง c:\java\bin\aaa เก็บ .class 100 แฟ้ม และ c:\java\bin\burin เก็บ . class 150 แฟ้ม การเรียกใช้จากแต่ละห้อง สามารถทำได้ด้วยการใช้คำสั่ง import แต่ class ที่อยู่ในแต่ละห้องจะประกาศด้วยคำสั่ง package และมีข้อมูลว่าแต่ละห้อง จะต้องมีชื่อ class ที่ไม่ซ้ำกัน
ตัวอย่างนี้ สร้าง class ของ burin ขึ้น 2 class คือ yonok1.java และ yonok2.java โปรแกรมที่ใช้เรียก package คือ testpackage.java โปรแกรม testpackage.java จะ compile ผ่าน จำเป็นต้องมีห้อง c:\java\bin\burin และในห้อง burin ต้องมีแฟ้มชื่อ yonok1.class และ yonok2.class ไว้แล้ว
? ควรศึกษาเรื่อง Java Archive ควบคู่กันไป
2 การใช้งาน Package
ขั้นตอนการทดสอบ
- สร้างห้อง burin ใน bin (เพื่อเป็น package เก็บโปรแกรมที่พัฒนาขึ้น)
- สร้าง package ไว้ใช้ในห้อง burin
เข้าห้อง burin แล้วเขียนโปรแกรม burin1.java และ burin2.java ในห้องนั้น
ตัวอย่างการแปล
เช่น c:\java\bin\burin>..\javac yonok1.java
และ c:\java\bin\burin>..\javac yonok2.java
// yonok1.java
package burin;
public class yonok1 {
public yonok1() {
System.out.println(“YONOK”);
}
}
// yonok2.java
package burin;
public class yonok2 {
public yonok2() {
System.out.println(“Burin Rujjanapan”);
}
public void prt(String s){
System.out.println(s);
}
}
- เรียกใช้ package จากห้อง burin
ตัวอย่างการแปล และประมวลผล
c:\java\bin>javac testpackage.java
c:\java\bin>java testpackage
// import testpackage.java
import burin.*;
class testpackage {
public static void main (String[] args) {
yonok1 xxx = new yonok1();
yonok2 yyy = new yonok2();
yyy.prt(“test of package”);
}
}
// Result of this program
// YONOK
// Burin Rujjanapan
// test of package
- นำเข้า .jar และเรียกใช้
การเรียก package ใน .jar ไม่พบปัญหา เพราะลบห้อง burin หลังส่งเข้า .jar ได้
c:\java\bin>jar cfm wow.jar manifest.mf testpackage.class burin/*.*
c:\java\bin>java -jar wow.jar