วันศุกร์ที่ 8 กรกฎาคม พ.ศ. 2554

Package ของ Java

1.  ให้ศึกษา Package ของ Java โดยเน้นหนักไปที่ package scope  ของ attributesและ methods ที่อยู่ใน Package  ให้เขียนคำตอบลงใน blog

Package

        เป็นไฟล์ที่ใช้เก็บรายชื่อ class ที่การนำมาใช้ในงานเดียวกันหรือมีวัตถุประสงค์ในการทำงานคล้ายกัน เพื่อให้สะดวกแก่การใช้งานได้สะดวกและรวดเร็ว รวมทั้งยังสามารถกำจัดปัญหาเกี่ยวกับชื่อclass ที่ซ้ำกันได้ด้วย (ชื่อclass สามารถใช้ซ้ำกันได้ ถ้าอยู่ต่างclassกัน)
      
        ข้อกำหนดของการตั้งชื่อ class ในจาวาคือ ชื่อจะต้องไม่ซ้ำกันในแต่ละโปรแกรม ซึ่งเมื่อมีการสร้างโปรแกรมมากขึ้น โอกาสที่ชื่อclassจะซ้ำกันมีสูง เพื่อหลีกเลี่ยงปัญหานี้ จึงมีคำสั่ง "Package" เพื่อใช้เก็บรายชื่อ Class ต่างๆ ที่ใช้ทำงานประเภทเดียวกันไว้ด้วยกัน เมื่อต้องการใช้งาน Class ใดๆ ก็สามารถเรียกใช้ Package ที่เก็บ class ขึ้นมาในโปรแกรม จากนั้นจึงเรียกใช้ method ต่างๆใน class นี้อีกที ทำให้สามารถตั้งชื่อ Class หรือ Method ซ้ำกันได้ (ถ้าเก็บไว้ในต่าง Package กัน และไม่เรียกใช้พร้อมกัน ถ้ามีการเรียกใช้พร้อมกันในโปรแกรมเดียวกัน เมื่อ compile โปรแกรมจะไม่มีผลใดๆ แต่เมื่อเรียกใช้งานโปรแกรมนี้ เมื่อใดจะเกิด Error ฟ้องมาทันที)

     การใช้คำสั่ง "Package"     
                   package MyPackage;

     โดย 
            package            เป็นคำสั่ง
            MyPackage      เป็นชื่อ Package ที่ตั้งขึ้นมา โดยชื่อ Packageนี้จะเป็นชื่อ Directory ที่ใช้เก็บชื่อ Class ต่าง (.class) เช่น จากตัวอย่างจะต้องสร้าง Directory ชื่อ MyPackage ขึ้นมาด้วย โดยโปรแกรมที่ compile เสร็จแล้วให้นำมาเก็บไว้ใน Directory ที่ระบุไว้ในคำสั่ง Package ด้วย
           ระวัง! ชื่อ Package ต้องตรงกันทั้งตัวอักษรพิมพ์เล็กและพิมพ์ใหญ่
           กรณีที่ต้องการสร้าง Package แบบลำดับชั้น (คือมี subdirectory) ให้ใช้เครื่องหมายจุด(.)คั่นระหว่างชื่อด้วย


                 Ex.                                      package SNSD.pics.Sunny;

                - โปรแกรมที่ compile เสร็จ จะต้องเก็บไว้ใน directory ชื่อ "SNSD\pics\Sunny" เท่านั้น



การป้องกันใน Package
          
            ในการเรียกใช้ method ต่างๆของแต่ละ class หรือแต่ละ package นั้น จะมีการกำหนดค่า Accessibility ไว้ด้วย ทั้งนี้จะแยก Class ออกเป็น 5 กลุ่ม ได้แก่
            1. class เดียวกัน
            2. subclass ใน package เดียวกัน
            3. ไม่เป็น subclass แต่อยู่ใน package เดียวกัน
            4. subclass ที่อยู่ต่าง package เดียวกัน
            5. class ที่อยู่ต่าง package กัน และไม่เป็น subclass
           
            สำหรับค่า Accessibility แบ่งออกเป็น 4 ชนิด ได้แก่
           1. Public         เรียกใช้ variable หรือ method ได้ไม่ว่าอยู่ class หรือ package ใดก็ตาม
           2. Private        เรียกใช้ variable หรือ method ได้เฉพาะภายในclass เท่านั้น class อื่นเรียกใช้ไม่ได้
           3. Protect       ใช้ได้เหมือน Public รวมทั้ง class ที่เป็น subclass แต่กรณีที่อยู่ต่าง package กัน จะใช้ไม่ได้
           4. Default        กรณีที่ไม่กำหนดค่า Accessibility ไว้ จะหมายถึงค่า default โดยจะใช้ได้เฉพาะ class และ subclass ที่อยู่ใน package เดียวกัน (ต่าง package จะใช้ไม่ได้)


ตารางในการสรุปความสามารถในการเรียกใช้ variable หรือ method ร่วมกันของ class และ subclass ต่างๆ

วันศุกร์ที่ 1 กรกฎาคม พ.ศ. 2554

การสร้าง Bean ใน NetBeans

การสร้าง Bean ใน NetBeans
 1. สร้าง Projectใหม่ ไปที่ File -- New Project


2. เลือก Java Application หลังจากนั้น กด Next


 3. ตั้งชื่อโปรเจ็คที่ต้องการเลือกพื้นที่ที่จะบันทึก จากนั้นให้กด Finish


4. click ขวาที่ชื่อโปรเจ็ค ทางด้ายซ้ายมือ แล้วทำการเลือก New -->>JFrame Form


5. ตั้งชื่อ Class แล้วกด Finish

6. ทำการ import file beans เข้ามาใน NetBeans ให้เลือก Tool-->>Palatte-->>AWT Components


7. ทำการคลิ๊กที่ Add from JAR


8. จากครั้งที่แล้วที่ได้สร้างโปรแกรม CounterBeans ที่นำมาประกอบมี OurButton (อยู่ใน buttons.jar) , Counter (อยู่ในCounter.jar)และ TickTock(อยู่ใน misc.jar) ทำการเลือกไฟล์ .JAR ทั้ง3ไฟล์แล้วกด Next


9. โปรแกรมจะแสดงตัว Beans ทั้งหมดจากไฟล์ .JAR ถ้าไม่พบไฟล์ที่ต้องการ ให้เลือกติ๊กที่ Show All JavaBeans ด้านล่างก่อนแล้วเลือก Beans ที่ใชั้ทั้ง 3 ตัว คือ Counter ,OurButton, TickTock ตามภาพ


10. จะแสดงผลใน Category ใด เลือกใส่ไว้ใน Beans กด Finish


 หมายเหตุ >> จะพบว่า Beans ทั้งหมดถูก import เข้ามาในกล่อง Palette ช่อง Beans ด้านขวามือบน

11. . ต่อไปเป็นการประกอบตัวหน้าตาโปรแกรม โดยการลาก Beans ที่ Import เข้ามาจัดวางลงในหน้าต่างส่วนกลาง โดยเริ่มต้นที่ลากปุ่มมาใส่จาก Beans OurButtonตั้งค่า Propertie ในกล่องด้านขวามือ ช่อง Label เพื่อเปลี่ยนข้อความบนปุ่ม
สร้าง 3 ปุ่มคือ Start Stop และ Reset


 12. ลาก Counter มาจัดวาง แล้วทำการปรับขนาดให้เรียบร้อย


 13.  ทำการลาก TickTock มาวาง ซึ่งจะไม่ปรากฏบนหน้าต่าง Interface
ปรับค่า Intervalในกล่อง Properties ด้านขวามือเป็น 1 (เพิ่มขึ้นทีละ1)


14.กล่อง Inspector ด้านซ้ายมือล่าง คลิกขวาที่ tickTock1 (ตัว Object Beans TickTock)
เลือก Events -- PropertyChange -- propertyChange


15.  มันจะสร้าง Method tickTock1PropertyChange ซึ่งสามารถเรียกใช้งาน Eventได้ ทำการเรียก increment มาใช้งาน โดยเขียนเป็น ชื่อ Counter.increment(); (ชื่อCounter ของเราคื่อ counter1 จากข้อเมื่อกี้ได้กล่าวไว้)
 

 16. ต่อไปเป็นการกำหนด Event ให้กับปุ่มทั้ง 3คลิกขวาที่กล่อง Inspector ด้านซ้ายมือล่าง เลือกปุ่มแรกที่ชื่อว่า ourButton1 เลือก Events -- Action -- actionPerformed

17. มันจะสร้าง Method ให้เหมือนเดิม กำหนดให้ Counter เริ่มทำ ใช้คำสั่ง ชื่อCounter.start();

อีก 2 ปุ่มทำเหตุการณืเดียวกันแต่เปลี่ยนคำส่ง Event เป็น
ชื่อCounter.stop();
เพื่อหยุด และ ชื่อCounter.reset(); เพื่อเคลียร์ค่า
 18. เสร็จแล้วทำการเปิดดูโปรแกรมด้วยการคลิกขวาที่ Form เลือก Run File หรือกด Shift + F6


สุดท้ายจะได้ผลลัพธ์ของโปรแกรม : กดStop เพื่อหยุด, กดResetเพื่อเคลียร์ค่าเป็น0,กดStartเพื่อเริ่มใหม่