วันพฤหัสบดีที่ 30 มิถุนายน พ.ศ. 2554

Package ของ Java

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

ก่อนอื่นมาทำความรู้จักกับ Package กันก่อนนะครับ
Package คือ สิ่งที่รวบรวมของที่มีความสัมพันธ์กันให้มาอยู่ด้วยกัน เพื่อง่ายต่อการใช้งานและในการค้นหา
Ex ….   package human.data
public class Man
                {  public static void main(String[] args)
                                {system.out.print(“Man”);              }
                }
เมื่อทำการ compile class man ถูกเก็บใน  package ของ human.data

ต่อไปเรามาทำความรู้จักกับ attributes กันบ้าง
                attributes  เป็นสิ่งที่ใช้ในการบ่งบอกลักษณะของข้อมูล 
                Ex… int m; 
m เป็น attribute ประเภท int เป็นต้น

และสุดท้ายเรามาทำความรู้จักกับ methods
                methods  เป็นสิ่งที่วัตถุสามารถกระทำออกมาได้ หรือกล่าวได้ง่ายว่า methods เป็นชุดของคำสั่งการทำงานอย่างหนึ่ง
                Ex…      public void setTimeIn(String time){
                                                timeIn = time;
                                }
                รับค่าพารามิเตอร์ time เข้ามาใช้งานใน method ที่ชื่อ setTimeIn ก็จะได้ค่าของ timeIn แต่ว่าไม่มีการคืนค่ากลับเพราะว่า  ประกาศแบบ void

นอกจากนี้ในการประกาศ Modifier ซึ่งแบ่งออกเป็น 2 ประเภทใหญ่ๆ
1.             access modifier.ใช้กำหนดไว้หน้า class  attribute method   เพื่อกำหนดสิทธิระดับการใช้งาน  โดยต้องกำหนดไว้ที่หน้า class  attribute method
2.             non-access modifier  เป็นตัวที่ใช้ในการกำหนดค่าของ attribute หรือ method ไม่เกี่ยวข้องกับการกำหนดสิทธิแต่อย่างใด

access modifier ที่สำคัญ ได้แก่
1.  public  ประกาศเป็นสาธารณะใช้ได้ทุกที่ ใช้ได้ทุก attribute method และ class
**นิยมให้ตั้งชื่อ class เดียวกันกับ ชื่อ file
2.  private  ประกาศให้ข้อมูลใช้ได้เพียงใน class เดียวกันเท่านั้น ใช้ได้กับ attribute method เท่านั้น
3.  package  ประกาศให้ข้อมูลใช้ได้แค่เพียงใน package เดียวกันเท่านั้น สามารถใช้ได้ทุก attribute method และ class
4.  protected  ประกาศให้ข้อมูลใช้ไม่ได้ในกรณีที่ใช้ต่าง package กัน แต่ถ้าเป็น parent เดียวกันสามารถใช้งานข้าม package ได้ สามารถใช้ได้กับ attribute method เท่านั้น

วันพฤหัสบดีที่ 23 มิถุนายน พ.ศ. 2554

Design Pattern "Eclipse"

Singleton  Pattern
องค์ประกอบเชิงโครงสร้างของ Singleton
Singleton
<<static>>-instance : Singleton
<<static>>+getInstance
                                    ภาพ  Class Diagram  แสดงองค์ประกอบเชิงโครงสร้างของ singleton

การทำงานมีดังนี้
1 )  กิจกรรมจะเริ่มเมื่อ object  ของ  class  ใด ๆ  ทำการเรียก Method getInstance()  ของ Singleton
2)  Singleton  ตรวจสอบว่า  atribuite  instance  ของตนเองได้รับการสร้างแล้วหรือยัง  ถ้ายัง  Singleton จะสร้าง  Attribute  instance  ขึ้น  แต่ถ้า instance ถูกสร้างขึ้นแล้ว Singleton จะไม่ดำเนินการใด ๆ 

ตัวอย่างการใช้งาน  Singleton
ความต้องการ( Requirements)
                ในระบบเครือข่ายขนาดเล็กระบบหนึ่ง  ซึ่งมีอุปกรณ์นานาชนิดต่อเชื่อมกันอย่างเป็นระบบ  ระบบมี printer  เพียงตัวเดียวให้ใช้ร่วมกันในระบบ  ดังนั้น  ในช่วงเวลาใดเวลาหนึ่ง  printer จะใช้งานเพียงงานเดียว  ดังนั้นระบบจึงต้องการสิ่งที่ช่วยควบคุมได้ว่าในเวลาหนึ่ง ๆ จะมีผู้เข้ามาใช้งาน printer  ได้เพียงคนเดียวเท่านั้น
จากความต้องการของระบบ  เราสามารถออกแบบโครงสร้างของ  printer  ได้ดังรูป
รูปแสดง class diagram  สำหรับระบบ “Single  Resoure”

Class Printer  มีรายละเอียดดังต่อไปนี้
  • Instance  เป็น  static attribute  ที่มี  type  เป็น  printer
  •   Name  เป็น  static  attribute ซึ่งเป็น  attribute  ที่ระบุชื่อของ  object  ของ  printer ที่ถูกสร้างขึ้น
  •  getInstance()  เป็น method ที่ทำหน้าที่สร้าง  attribute  instance  โดยจะตรวจสอบก่อนว่า instance ถูกสร้างแล้วหนือยัง  ถ้ายังจะถูกสร้างขึ้นพร้อมกับถูกตั้งชื่อ เมื่อ instance  ถูกสร้างขึ้นแล้วจะถูกส่งไปยังผู้เรียกเพื่อนำไปใช้งานต่อไป
  •  returnInstance()  เป็น method  ที่ทำหน้าที่คืน instance  กลับมาสู่ printer โดยเมื่อได้รับคืนมาแล้ว instance จะถูกทำลายทิ้ง
  •  getName()  เป็น  method  ที่ทำหน้าที่อ่านชื่อของ  object  ของ  printte

ตัวอย่างการสร้าง  package และการ  run code
      
-                   
- 
-   
 

หลังจากนั้นทำการสร้าง clsss  ภายใน package  สำหรับในที่นี้จะทำการสร้าง  class 2 class  คือ 
Class Printerclient  และ  class Printer

Code  class PrinterClient.java
 


Code  class Printer.java
 


ผลลัพธ์จากการ run Program