Java Access Modifiers

Java Access Modifiers เป็นการระบุว่า Class ภายนอก หรือ Class อื่นๆ ให้เข้าถึง Class หนึ่งๆได้มากน้อยเพียงใด

ภายใน Class หนึ่งๆ สามารถระบุแยกต่างหากสำหรับ Fields , Constructor และ method ได้

Access Modifiers แบ่งเป็น 4 ระดับ ดังนี้

1. private เป็นการระบุว่า ภายใน Class เดียวกันเท่านั้นที่จะเข้าถึงกันได้ สามารถระบุให้ Fields,Constructor และ Method แต่ไม่อนุญาติให้ระบุให้ Class ถ้าสมมุติว่าระบุให้ Class แล้วทำให้ Class อื่นเข้าถึง Class ที่ระบุไม่ได้ แล้วจะสร้าง Class นี้มาเพื่ออะไร

private นิยมระบุให้ Fields ของ Instance ทำให้ไม่สามรถเข้าถึง Fields นั้นๆโดยตรงได้
การเข้าถึงนั้น private Fields ส่วนมากเขาจะเข้าถึงกันผ่าน method ชื่อ getter และ setter
method getter คือ การเรียกใช้ Fields 
method  setter คือ การกำหนดค่าให้กับ Fields 

การทำแบบนี้เพื่อเป็นไม่ให้เข้าถึง Fields ได้โดยตรง มีประโยชน์มากมาย เช่น ถ้าเราไม่ต้องการให้เขา set ค่าให้เราใหม่ เรา set ค่าให้เขาไว้แล้วให้เขาใช้ค่านี้ห้ามเปลี่ยนแปลง ให้เขา get ค่าเราไปใช้อย่างเดียว นี้ก็เป็นเพียงเหตุผลเล็กน้อย แต่จริงๆแล้วมันมีผลกับหลักการออกแบบ OOP หัวข้อ Encapsulation ซึ่งจะขอกล่าวในบทความอื่นๆ 

ตัวอย่าง code







private Constructor
ถ้า Constructor ระบุ private นั้นหมายถึง Constructor นี้ไม่สามารถเรียกจากภายนอก Class ได้ แต่ Constructor นี้จะสามารถเรียกจาก Constructor อื่นๆภายใน Class ได้ หรือ เรียกจาก Static Method ภายใน Class ก็ได้

ตัวอย่าง code








2. default (package) Access Modifiers นี้จะประกาศโดยไม่เขียน Access Modifiers ใดๆเลย เป็นการระบุว่า สามารถเข้าถึงได้ถ้าอยู่ใน package เดียวกัน 

ตัวอย่าง code








3. protected เป็นการระบุ เช่นเดียวกับ default ที่เพิ่มมาคือ subclass สามารถเข้าถึง superclass ได้แม้ว่าจะอยู่คนละ package กัน

ตัวอย่าง code





4. public เป็นการระบุว่าเป็น สารธณะ สามารถเข้าถึงได้หมดไม่ว่าจะอยู่ที่ใดก็ตาม


รูปสรุป Java Access Modifiers 


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

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