Java

Access Modifiers คือการเข้าถึงใน Java จะระบุการเข้าถึงหรือขอบเขตของlass, constructor, variable, method, or data member มี 4 ประเภท คือ

  1. Default – No keyword : เมื่อไม่ได้ระบุตัวการเข้าถึงสำหรับคลาส เมธอดหรือเมมเบอร์ข้อมูล ถือว่ามีตัวปรับเปลี่ยนการเข้าถึงเริ่มต้นตามค่าเริ่มต้น เมมเบอร์ข้อมูล คลาส หรือเมธอดที่ไม่ได้ประกาศโดยใช้ตัวปรับเปลี่ยนการเข้าถึงใดๆ คือ มีตัวปรับเปลี่ยนการเข้าถึงเริ่มต้น จะสามารถเข้าถึงได้ภายในแพ็คเกจเดียวกันเท่านั้น

ในตัวอย่างนี้ เราจะสร้างแพ็คเกจสองแพ็คเกจ และคลาสในแพ็คเกจจะมีตัวปรับแต่งการเข้าถึงเริ่มต้น และเราจะพยายามเข้าถึงคลาสจากแพ็คเกจหนึ่งจากคลาสของแพ็คเกจที่สอง

package p1; 

// Class Geek is having Default access modifier 
class Geek 
{ 
    void display() 
    { 
        System.out.println("Hello World!"); 
    } 
} 
// Java program to illustrate error while 
// using class from different package with 
// default modifier 
package p2; 
import p1.*; 

// This class is having default access modifier 
class GeekNew 
{ 
    public static void main(String args[]) 
    { 
        // Accessing class Geek from package p1 
        Geek obj = new Geek(); 

        obj.display(); 
    } 
} 
output :Compile time error
  1. Private : การเข้าถึงแบบส่วนตัวนั้นระบุโดยใช้คำสำคัญ private วิธีการหรือสมาชิกข้อมูลที่ถูกประกาศให้เป็นแบบส่วนตัวนั้นสามารถเข้าถึงได้เฉพาะภายในคลาสที่ประกาศเท่านั้น

    คลาสอื่นใดในแพ็คเกจเดียวกันจะไม่สามารถเข้าถึงสมาชิกเหล่านี้ได้ ไม่สามารถประกาศคลาสหรืออินเทอร์เฟซระดับบนสุดให้เป็นแบบส่วนตัวได้เนื่องจาก private หมายถึง "มองเห็นได้เฉพาะภายในคลาสที่ล้อมรอบ" protected หมายถึง "มองเห็นได้เฉพาะภายในคลาสที่ล้อมรอบและคลาสย่อย" ดังนั้น ตัวปรับเปลี่ยนเหล่านี้ในแง่ของการประยุกต์ใช้กับคลาสจึงใช้ได้กับคลาสที่ซ้อนกันเท่านั้น

ในตัวอย่างนี้ เราจะสร้างคลาส A และ B สองคลาสภายในแพ็กเกจ p1 เดียวกัน เราจะประกาศเมธอดในคลาส A เป็นแบบส่วนตัว และพยายามเข้าถึงเมธอดนี้จากคลาส B และดูผลลัพธ์

  1. Protected :วิธีการหรือสมาชิกข้อมูลที่ประกาศเป็น protected สามารถเข้าถึงได้ภายในแพ็คเกจหรือซับคลาสเดียวกันในแพ็คเกจที่แตกต่างกัน

ในตัวอย่างนี้ เราจะสร้างแพ็กเกจ p1 และ p2 สองแพ็กเกจ โดยคลาส A ใน p1 จะเปิดเป็นสาธารณะเพื่อให้เข้าถึงได้ใน p2 วิธีการที่แสดงในคลาส A จะได้รับการป้องกัน และคลาส B จะได้รับสืบทอดมาจากคลาส A จากนั้นจึงสามารถเข้าถึงวิธีการที่ได้รับการป้องกันนี้ได้โดยการสร้างอ็อบเจ็กต์ของคลาส B

  1. Public :ตัวปรับแต่งการเข้าถึงสาธารณะมีขอบเขตที่กว้างที่สุดในบรรดาการเข้าถึง Classes, methods, or data members สามารถเข้าถึงได้จากทุกที่ใน program

Last updated