สนับสนุนโดย

วันอาทิตย์ที่ 2 ธันวาคม พ.ศ. 2561

การใช้งาน protected หลักการ และการใช้จริง

จากที่เราได้เรียนกันมาบ้างแล้ว ส่วนของ private, defaut, public ทีนี้ก็เหลือตัวสุดท้ายในด้าน modifier นั่นก็คือ protected แปลกันแบบตรงตัวก็ ปกป้อง เอ้ะ ปกป้องยังไง ปกป้องในที่นี้หมายความว่า ไม่ให้ method หรือ properties ใดๆ ถูกเรียกใช้ได้ หากอยู่คนละ package กัน

พูดง่ายๆ ก็คือจำกัดห้อง ถ้าข้ามห้อง ไม่ให้เข้าถึง นั่นเอง


ลองมาลงภาคสนามกันครับ ให้สร้าง Car.java ไว้ใน package myPackage2 ดังนี้
เขียนโค้ดเข้าไปดังนี้

package myPackage2;

public class Car {
    protected void x() {
        System.out.println("car x value");
    }
}
จากนั้นสร้าง ProtectedExample.java ไว้ใน myPackage ดังนี้
เขียนโค้ดเข้าไปดังนี้
package myPackage;

public class ProtectedExample {

    public static void main(String[] args) {
        myPackage2.Car c = new myPackage2.Car();
        c.x();
    }
}

ผลการทำงาน
Exception in thread "main" java.lang.RuntimeException: Uncompilable source code - x() has protected access in myPackage2.Car
at myPackage.ProtectedExample.main(ProtectedExample.java:8)

หากใช้โปรแกรม Netbeans ในการเขียนโปรแกรม มันจะแจ้งบอกว่าสาเหตุทันที

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

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