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