[Java] keyword และสิทธิ์การเข้าถึงตัวแปร/เมธอด
static เป็นคีย์เวิร์ดที่จะทำให้ method หรือตัวแปร มีการจอง memory เพียงหนึ่งเดียวเท่านั้น เช่น ถ้าประกาศ Object หลายๆตัว ตัวแปร static ของแต่ละ Object จะถือว่าเป็นตัวเดียวกันทั้งหมด (ถ้าไม่ใช่ static ก็จะจองพื้นที่ใหม่สำหรับแต่ละ Object) ตัวแปรลักษณะนี้จะเหมาะสำหรับการประกาศแล้วใช้เหมือนกันในหลายๆ Class แต่ถ้าใช้เพียงไม่กี่ Class ก็จะทำให้เปลือง memory พอสมควร เพราะว่าปกติแล้วการเขียน Class จะเหมือนการบอกลอยๆว่าจะมีรายละเอียดอะไรบ้าง แต่จะยังไม่จอง memory จนกว่าจะมีการสร้าง Object แต่สำหรับ static แล้ว Class จะมีการจองพื้นที่ memory ไปก่อนด้วยทำให้เราสามารถเขียนในลักษณะ <ชื่อคลาส>.<ตัวแปร static> ได้
final เป็นคีย์เวิร์ดที่ระบุว่าสิ้นสุดหรือสุดท้ายแล้ว คือ การกำหนดค่าให้ตัวแปรที่มีการประกาศเป็น final จะกำหนดค่าเริ่มต้นได้เพียงครั้งเดียว และค่าเริ่มต้นนี้ จะเปลี่ยนแปลงไม่ได้ เช่น ถ้าเป็น Method ก็จะไม่สามารถนำไป inherit ต่อได้ ถ้าเป็นตัวแปรก็จะไม่สามารถเปลี่ยนแปลงค่าได้ มักใช้สำหรับตัวแปรที่ต้องการให้มีข้อมูลคงที่ตลอดทั้งโปรแกรม
Access_Level อันนี้เป็นระดับการเข้าถึงครับ มี 3 ชนิดก็คือ
private สามารถใช้งานได้ในคลาสเท่านั้น
protected สามารถใช้ได้ภายในคลาสที่มีวงศ์ตระกูลเดียวกัน (สืบทอด)
public ใช้งานได้แบบสาธารณะ (ไม่มีข้อจำกัด)
สำหรับ Access_Level นี้เราจะเห็นบ่อยสำหรับภาษา Java ไม่ว่าจะเป็นการเขียน Function การเขียน Class หรือว่าการประกาศตัวแปรของ Class หลายคนอาจสงสัยว่าทำไม Class ต้องระบุด้วย สิ่งหนึ่งที่ผมสังเกตได้คือ การสืบทอด เนื่องจาก Java ใช้คำสั่ง extends สำหรับการสืบทอดโดยไม่ต้องระบุการเข้าถึงตอนสืบทอดเหมือนภาษา C++
ข้อมูลจาก:
http://www.itmelody.com/tu/javastructure.html
http://code.function.in.th/java/oop
public static void main(String[] args)
final เป็นคีย์เวิร์ดที่ระบุว่าสิ้นสุดหรือสุดท้ายแล้ว คือ การกำหนดค่าให้ตัวแปรที่มีการประกาศเป็น final จะกำหนดค่าเริ่มต้นได้เพียงครั้งเดียว และค่าเริ่มต้นนี้ จะเปลี่ยนแปลงไม่ได้ เช่น ถ้าเป็น Method ก็จะไม่สามารถนำไป inherit ต่อได้ ถ้าเป็นตัวแปรก็จะไม่สามารถเปลี่ยนแปลงค่าได้ มักใช้สำหรับตัวแปรที่ต้องการให้มีข้อมูลคงที่ตลอดทั้งโปรแกรม
final String homepage="home.jsp";
Access_Level อันนี้เป็นระดับการเข้าถึงครับ มี 3 ชนิดก็คือ
private สามารถใช้งานได้ในคลาสเท่านั้น
protected สามารถใช้ได้ภายในคลาสที่มีวงศ์ตระกูลเดียวกัน (สืบทอด)
public ใช้งานได้แบบสาธารณะ (ไม่มีข้อจำกัด)
สำหรับ Access_Level นี้เราจะเห็นบ่อยสำหรับภาษา Java ไม่ว่าจะเป็นการเขียน Function การเขียน Class หรือว่าการประกาศตัวแปรของ Class หลายคนอาจสงสัยว่าทำไม Class ต้องระบุด้วย สิ่งหนึ่งที่ผมสังเกตได้คือ การสืบทอด เนื่องจาก Java ใช้คำสั่ง extends สำหรับการสืบทอดโดยไม่ต้องระบุการเข้าถึงตอนสืบทอดเหมือนภาษา C++
ข้อมูลจาก:
http://www.itmelody.com/tu/javastructure.html
http://code.function.in.th/java/oop