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

Package JAVA & Scope

  Java มีลักษณะเช่นเดียวกับโปรแกรมภาษาระดับสูงอื่นๆ คือ จะมี Class ย่อยที่เขียนขึ้นมาให้เรียกใช้ได้ทันที โดยไม่ต้องเขียนเองให้เสียเวลา Class เหล่านี้ถูกเรียกว่า Package ครับ

สำหรับขอบเขตของ class มีดังนี้

public , private , protected, static , void

1) public

ใช้สำหรับนิยามตัวแปร ,Method และ Class ใดๆ เพื่อที่จะให้สามารถนำไปใช้กับ Class อื่นๆ ได้
   สำหรับการนิยามตัวแปรของ public นั้นเราจะกำหนดตัวแปรเป็น public ในกรณีที่ตัวแปรนั้นทำหน้าที่เป็น public constant หรือในกรณีที่ class ทำหน้าที่ group หลาย ๆ ตัวแปรเข้าด้วยกัน
   สำหรับการกำหนด method แบบ public มีดังนี้
กำหนดให้เป็น public ในกรณีที่ต้องการให้ class ใด ๆ สามารถเรียกใช้ได้ และสามารถเรียกใช้จากภายใน class เองได้ และ subclass ก็สามารถทำการ override ได้

2) private

private ใช้นิยามตัวแปร หรือ Method เพื่อให้เรียกใช้ได้เฉพาะภายใน Class ที่สร้างตัวแปร หรือ Method นั้นๆ ขึ้นมาเท่านั้นครับ

สำหรับการนิยามตัวแปรของ private มีจุดประสงค์คือ

1. ตัวแปรมักเป็นส่วนหนึ่งของ implementation ภายในของ class ซึ่งอาจมีการเปลี่ยนแปลงภายหลังได้ ซึ่งถ้ายอมให้ class อื่นมีการเข้าถึงได้โดยตรงแล้ว เมื่อมีการเปลี่ยนแปลง อย่างเช่น เปลี่ยนชื่อตัวแปรก็จะมีผลกระทบกับ class ที่มาเรียกใช้นั้น

2. class ที่ประกาศ ตัวแปรนี้เป็น เป็นเพียง class เดียวเท่านั้น ที่รู้ว่าค่าของตัวแปรนี้ควรจะเป็นอะไรได้บ้าง การที่ยอมให้ class อื่นมาเปลี่ยนค่าได้โดยตรง จะทำให้ค่าของ ตัวแปรนี้ไม่ถูกต้อง การทำให้เป็น private แล้วมี get/set method ไว้ให้เรียกใช้ จะทำให้เราสามารถเขียน code ที่จะกำหนดค่าที่เป็นไปได้ของ ตัวแปรตัวนี้ได้ นอกจากนี้เรายังสามารถใช้ method get/set เป็นตัวกำหนดระดับที่ยอมให้เข้าถึงตัวแปรได้ อย่างเช่น ถ้ามีเพียง get method ก็หมายความว่ายอมให้อ่านได้เท่านั้น ถ้ามีเพียง set method ก็หมายความว่า set ค่าได้เท่านั้น

3) Protected

protected ใช้นิยามตัวแปร หรือ Method ที่ใช้ได้เฉพาะ Class ที่สร้างขึ้นมาด้วยวิธีการสืบทอด (Inheritance) เท่านั้นโดยปกติจะใช้ protected กับ Class ที่เป็น Class ต้นฉบับ

สำหรับการนิยามตัวแปรของ Protected ใช้เมื่อ เราต้องการให้ subclass สามารถเรียกใช้ ตัวแปรนี้ได้โดยตรง

สำหรับการกำหนด method แบบ Protected มีดังนี้
กำหนดให้เป็น protected ในกรณีที่ไม่ต้องการให้ class อื่นเรียกใช้ และต้องการใช้ภายใน class นั้น และที่สำคัญคือยอมให้ subclass สามารถเปลี่ยนหรือเลือกไม่ใช้ implementation ของ method นี้ได้ โดยการทำ overriding

4) static

static ใช้นิยามตัวแปรและ Method ที่ต้องการให้มีค่าคงที่ สามารถนำไปใช้ได้กับทุกๆ ส่วนของ Class โดยค่านั้นจะไม่มีการเปลี่ยนแปลงไม่ว่ากรณีใดๆ


5) void

void ใช้นิยาม Method โดยเป็นการกำหนดให้ไม่มีการส่งค่าใดๆ กลับมาให้กับ Method นี้ (ดังนั้นเราจึงไม่ต้องใช้คำสั่ง return)


>>>มีรูปตารางมาฝากกันครับเพื่อจะได้เข้าใจถึงระดับการเข้าถึงครับบ<<<

ไม่มีความคิดเห็น:

แสดงความคิดเห็น