Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Java

Private Methods ใน Java 9 Interface

ใหม่ใน Java 9: Private Methods ใน Interface

Java 9 อนุญาตให้ interface มี private และ private static methods ช่วยลดโค้ดซ้ำใน default/static methods

ตัวอย่าง

interface MyInterface {
    // Abstract method
    void multiply(int a, int b);
    
    // Default method ใช้ private method
    default void add(int a, int b) {
        sub(a, b);  // เรียก private method
        System.out.println("Default method result: " + (a + b));
    }
    
    // Private instance method
    private void sub(int a, int b) {
        System.out.println("Private method result: " + (a - b));
    }
    
    // Private static method
    private static void div(int a, int b) {
        System.out.println("Private static method result: " + (a / b));
    }
}

public class MyImpl implements MyInterface {
    @Override
    public void multiply(int a, int b) {
        System.out.println("Abstract method result: " + (a * b));
    }
    
    public static void main(String[] args) {
        MyInterface obj = new MyImpl();
        obj.multiply(11, 34);
        obj.add(78, 0);
        // obj.sub(1, 2); // compile error - private
        // MyInterface.div(10, 2); // compile error - private static
    }
}

ผลลัพธ์

Abstract method result: 374
Private method result: 78
Default method result: 78

กฎสำคัญ

  • Private method เรียกได้ เฉพาะภายใน interface เดียวกัน
  • Private instance method เรียกจาก default method ได้
  • Private static method เรียกจาก default/static method ได้
  • ไม่สามารถ override** private method ใน implementing class
  • ช่วย share logic ระหว่าง default methods โดยไม่เปิดเผยต่อ implementing classes

ประโยชน์

  • ลด code duplication ใน default methods
  • Encapsulation ดีขึ้น - ซ่อน implementation details
  • รักษา binary compatibility