Computer >> Máy Tính >  >> Lập trình >> Java

Các quy tắc cho các phương thức riêng tư trong một giao diện trong Java 9 là gì?


Java 9 đã thêm một tính năng mới của private phương pháp vào một giao diện . Các phương thức riêng tư có thể được xác định bằng cách sử dụng riêng tư bổ nghĩa. Chúng tôi có thể thêm cả riêng tư riêng tư tĩnh phương pháp trong giao diện từ Java 9 trở đi.

Quy tắc cho các phương thức riêng tư trong giao diện:

  • Một phương thức private có một phần thân trong một giao diện có nghĩa là chúng ta không thể được khai báo như một phương thức trừu tượng bình thường như thường làm trong một giao diện. Nếu chúng tôi đang cố gắng khai báo một phương thức riêng tư mà không có phần thân thì nó có thể gặp lỗi nói rằng " Phương thức này yêu cầu phần thân thay vì dấu chấm phẩy ".
  • Chúng tôi không thể được sử dụng cả riêng tư trừu tượng các bổ ngữ cùng nhau trong một giao diện.
  • Nếu chúng tôi muốn truy cập một phương thức riêng tư từ một phương thức tĩnh trong một giao diện thì phương thức đó có thể được khai báo là phương thức tĩnh riêng tư vì chúng tôi không thể tạo tham chiếu tĩnh đến không tĩnh phương pháp.
  • Một phương thức tĩnh riêng tư được sử dụng từ một không tĩnh ngữ cảnh có nghĩa là nó có thể được gọi từ phương thức mặc định trong một giao diện.

Cú pháp

interface <interface-name> {
   private methodName(parameters) {
      // some statements
   }
}

Ví dụ

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();
   }
}

Đầu ra

This is a Default method One...
methodOne() called
methodTwo() called
This is a Default method Two...
methodOne() called
methodTwo() called