สนับสนุนโดย

วันเสาร์ที่ 24 พฤศจิกายน พ.ศ. 2561

modifier ของ method

สำหรับการกำหนดสิทธิ์การเข้าถึง method นั้น ทำได้เช่นเดียวกับ properties โดยตัวที่เราจะได้เรียนกันในหัวข้อนี้ก็คือเรื่องของ private ก่อน เพราะเห็นภาพได้ง่าย ชัดเจน

คำว่า private ก็หมายถึง ส่วนตัว นั่นแปลว่าหาก method ใดมีคำว่า private นำหน้า method นั้นจะถูกเรียกใช้งานไม่ได้ แม้ว่าจะเป็น object ก็ตาม แต่จะสามารถเรียกใช้ได้ก็ต่อเมื่อ อยู่ใน class ของตนเอง



เช่น

private void myMethod() {
}

มาดูโค้ดกรณีเรียกใช้ private method ใน class ตนเอง


package hellojava;

public class PrivateMethod {
    public static void main(String[] args) {
        PrivateMethod p = new PrivateMethod();
        p.myMethod();
    }
    
    private void myMethod() {
        System.out.println("Hello");
    }
}


ผลการทำงาน
Hello

ทีนี้เรามาสร้าง class อีกตัวเพื่อไปเรียกใช้ private method ของเราดู


package hellojava;

public class CallPrivateMethod {
    public static void main(String[] args) {
        PrivateMethod p = new PrivateMethod();
        p.myMethod();
    }
}


ผลการทำงาน
Exception in thread "main" java.lang.RuntimeException: Uncompilable source code - myMethod() has private access in hellojava.PrivateMethod
at hellojava.CallPrivateMethod.main(CallPrivateMethod.java:7)

สังเกตุว่าโปรแกรมก็จะ error ทันทีเพราะมันไม่สามารถ compile ได้เนื่องจากโค้ดนี้ ไม่มีสิทธิ์เข้าไปเรียกใช้สิ่งที่เป็น private ได้ (นอกจากคลาสนั้นเรียกเอง ตามในโค้ดตัวแรกที่เราเขียน)

ไม่มีความคิดเห็น:

แสดงความคิดเห็น