Java 9 เพิ่มคุณลักษณะใหม่ของ ส่วนตัว วิธีการ ไปยัง อินเทอร์เฟซ . วิธีการส่วนตัวสามารถกำหนดได้โดยใช้ ส่วนตัว ตัวแก้ไข เราเพิ่มได้ทั้ง ส่วนตัว และ ส่วนตัว คงที่ วิธีการ ในอินเทอร์เฟซจาก Java 9 เป็นต้นไป
กฎสำหรับเมธอดส่วนตัวในอินเทอร์เฟซ:
- เมธอดส่วนตัวมีเนื้อหาในอินเทอร์เฟซ หมายความว่าเราไม่สามารถประกาศให้เป็นวิธีนามธรรมปกติเหมือนที่ทำในอินเทอร์เฟซได้ตามปกติ หากเรากำลังพยายามประกาศวิธีการส่วนตัวโดยไม่มีเนื้อหา ก็อาจมีข้อผิดพลาดแจ้งว่า "วิธีนี้ต้องใช้เนื้อความแทนที่จะเป็นเครื่องหมายอัฒภาค ".
- ไม่สามารถใช้ทั้ง ส่วนตัว และ นามธรรม ตัวแก้ไขร่วมกันในอินเทอร์เฟซ
- หากเราต้องการเข้าถึงเมธอดส่วนตัวจากเมธอดแบบสแตติกในอินเทอร์เฟซ เมธอดนั้นก็สามารถประกาศเป็น เมธอดไพรเวตสแตติก เนื่องจากเราไม่สามารถอ้างอิงแบบคงที่กับ ไม่คงที่ วิธีการ
- A วิธีการแบบคงที่ส่วนตัว ใช้จาก ไม่คงที่ บริบทหมายความว่าสามารถเรียกใช้จาก วิธีการเริ่มต้น ในอินเทอร์เฟซ
ไวยากรณ์
interface <interface-name> {
private methodName(parameters) {
// some statements
}
} ตัวอย่าง
interface TestInterface {
default void methodOne() {
System.out.println("This is a Default method One...");
printValues(); // calling a private method
}
default void methodTwo() {
System.out.println("This is a Default method Two...");
printValues(); // calling private method...
}
private void printValues() { // private method in an interface
System.out.println("methodOne() called");
System.out.println("methodTwo() called");
}
}
public class PrivateMethodInterfaceTest implements TestInterface {
public static void main(String[] args) {
TestInterface instance = new PrivateMethodInterfaceTest();
instance.methodOne();
instance.methodTwo();
}
} ผลลัพธ์
This is a Default method One... methodOne() called methodTwo() called This is a Default method Two... methodOne() called methodTwo() called