protected

protected เป็นคำประกอบการเข้าใช้ หมายถึงอนุญาตให้คลาสในแพ็คเกจเดียวกันและคลาสลูกใช้ได้

คลาส A มีแอททริบิวท์ n ที่มีการเข้าใช้แบบ protected (บรรทัดที่ 4)

package com.wannik;

public class A {
    protected int n;
}

คลาส B อยู่ในแพ็คเกจเดียวกับ A ดังนั้นจึงสามารถใช้แอททริบิวท์ n ได้ (บรรทัดที่ 6)

package com.wannik;

public class B {
    public static void main(String[] args) {
        A a = new A();
        a.n = 10;
    }
}

บรรทัดที่ 7 คลาส C สามารถใช้แอททริบิวท์ n ของคลาส A ได้ เพราะคลาส C เป็นลูกของ A

แต่บรรทัดที่ 12 คอมไพล์ไม่ผ่าน คลาส C ไม่สามารถอ้างถึงแอททริบิวท์ n ของคลาส A ผ่านทาง reference ของคลาส A ได้

สรุปคือเรียกใช้ตรงๆได้ แต่เรียกจากเรฟเฟอร์เรนซ์ของคลาสแม่ไม่ได้

package com.onenuk;

import com.wannik.*;

public class C extends A {
    void go() {
        n = 10;
    }

    void run() {
        A a = new A();
        a.n = 10;        
    }
}

บรรทัดที่ 7, 12 ของคลาส D คอมไพล์ไม่ผ่าน เพราะคลาส D ไม่เป็นลูกของคลาส A และไม่อยู่ในแพ็คเกจเดียวกับคลาส A

package com.onenuk;

import com.wannik.*;

public class D {
    void go() {
        n = 10;
    }

    void run() {
        A a = new A();
        a.n = 10;        
    }
}

เขียนโปรแกรม Java เบื้องต้น

หนังสือ Java Keywords

หากจะนำข้อความไปใช้ ต้องแสดงที่มา และห้ามใช้ในเชิงพาณิชย์

One thought on “protected

Leave a Reply

Please log in using one of these methods to post your comment:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s