ได้รับการปกป้อง ตัวระบุการเข้าถึงมองเห็นได้ภายในแพ็คเกจเดียวกัน และยัง มองเห็นได้ในคลาสย่อย ในขณะที่ ค่าเริ่มต้น เป็นข้อกำหนดการเข้าถึงระดับแพ็คเกจ r และสามารถ มองเห็นได้ในแพ็คเกจเดียวกัน
ตัวระบุการเข้าถึงที่มีการป้องกัน
- ได้รับการปกป้อง จะทำหน้าที่เป็นสาธารณะภายในแพ็คเกจเดียวกันและทำหน้าที่เป็นส่วนตัวนอกแพ็คเกจ
- ได้รับการปกป้อง จะทำหน้าที่เป็นสาธารณะนอกแพ็คเกจเฉพาะในส่วนที่เกี่ยวกับอ็อบเจ็กต์ย่อยเท่านั้น
- ได้รับการปกป้อง ไม่สามารถใช้ฟิลด์หรือเมธอดสำหรับคลาสและอินเทอร์เฟซได้
- ฟิลด์ เมธอด และคอนสตรัคเตอร์ที่ประกาศเป็น มีการป้องกัน ในซูเปอร์คลาสสามารถเข้าถึงได้โดยคลาสย่อยในแพ็คเกจอื่นเท่านั้น
- คลาสในแพ็คเกจเดียวกันยังสามารถเข้าถึง มีการป้องกัน ฟิลด์ เมธอด และคอนสตรัคเตอร์ด้วย แม้ว่าจะไม่ใช่คลาสย่อยของ ที่ได้รับการป้องกัน คลาสของสมาชิก
ตัวอย่าง
public class ProtectedTest { // variables that are protected protected int age = 30; protected String name = "Adithya"; /** * This method is declared as protected. */ protected String getInfo() { return name +" is "+ age +" years old."; } public static void main(String[] args) { System.out.println(new ProtectedTest().getInfo()); } }
ผลลัพธ์
Adithya is 30 years old.
ตัวระบุการเข้าถึงเริ่มต้น
- สมาชิกของคลาสที่กล่าวถึง โดยไม่มีตัวระบุการเข้าถึง ก็ถือว่าเป็น ค่าเริ่มต้น .
- The D เริ่มต้น จะทำหน้าที่เป็นสาธารณะภายในแพ็คเกจเดียวกันและทำหน้าที่เป็นส่วนตัวนอกแพ็คเกจ
- ค่า ค่าเริ่มต้น สมาชิกของคลาสใดก็ได้สามารถใช้ได้กับทุกอย่างในแพ็คเกจเดียวกันและไม่สามารถใช้ได้นอกแพ็คเกจภายใต้เงื่อนไขใด ๆ
- ค่าเริ่มต้น จำกัดการเข้าถึงเฉพาะระดับแพ็คเกจ แม้หลังจากขยายคลาสที่มีสมาชิกข้อมูลเริ่มต้น เราก็ไม่สามารถเข้าถึงได้
ตัวอย่าง
public class DefaultTest { // variables that have no access modifier int age = 25; String name = "Jai"; /** * This method is declared with default aacees specifier */ String getInfo() { return name +" is "+ age +" years old."; } public static void main(String[] args) { System.out.println(new DefaultTest().getInfo()); } }
ผลลัพธ์
Jai is 25 years old.