ได้รับการปกป้อง ตัวระบุการเข้าถึงมองเห็นได้ภายในแพ็คเกจเดียวกัน และยัง มองเห็นได้ในคลาสย่อย ในขณะที่ ค่าเริ่มต้น เป็นข้อกำหนดการเข้าถึงระดับแพ็คเกจ 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.