ถ้าฉันพิมพ์:
void doThis(){
System.out.println("Hello Stackoverflow.");
}
ขอบเขตเริ่มต้นของdoThis()
คืออะไร
สาธารณะ? มีการป้องกัน? เอกชน?
ถ้าฉันพิมพ์:
void doThis(){
System.out.println("Hello Stackoverflow.");
}
ขอบเขตเริ่มต้นของdoThis()
คืออะไร
สาธารณะ? มีการป้องกัน? เอกชน?
คำตอบ:
ขอบเขตเริ่มต้นคือแพ็คเกจส่วนตัว คลาสทั้งหมดในแพ็คเกจเดียวกันสามารถเข้าถึงเมธอด / field / class แพ็คเกจ - ส่วนตัวเข้มงวดกว่าขอบเขตที่ได้รับการป้องกันและสาธารณะ แต่อนุญาตได้มากกว่าขอบเขตส่วนตัว
ข้อมูลเพิ่มเติม:
http://docs.oracle.com/javase/tutorial/java/javaOO/accesscontrol.html
http://mindprod.com/jgloss/scope.html
สิ่งใดก็ตามที่กำหนดเป็นแพ็คเกจส่วนตัวสามารถเข้าถึงได้โดยคลาสเองคลาสอื่น ๆ ภายในแพ็กเกจเดียวกัน แต่ไม่ได้อยู่นอกแพ็คเกจและไม่ใช่คลาสย่อย
ดูหน้านี้สำหรับตารางตัวดัดแปลงระดับการเข้าถึงที่สะดวก ...
หากไม่มีตัวแก้ไขการเข้าถึงสมาชิกของคลาสจะสามารถเข้าถึงได้ทั่วแพ็คเกจซึ่งประกาศไว้ คุณสามารถเรียนรู้เพิ่มเติมจากJava Language Specification, §6.6
สมาชิกของอินเทอร์เฟซสามารถเข้าถึงได้โดยสาธารณะไม่ว่าจะประกาศอย่างชัดเจน
ขอบเขตเริ่มต้นคือ "เริ่มต้น" มันแปลก - ดูข้อมูลอ้างอิงเหล่านี้ สำหรับข้อมูลเพิ่มเติม
Java 8 ตอนนี้อนุญาตให้ใช้งานเมธอดภายในอินเตอร์เฟสด้วยขอบเขตเริ่มต้น (และแบบสแตติกเท่านั้น)
หากคุณไม่ได้ให้ตัวดัดแปลงใด ๆ กับวิธีการของคุณแล้วเป็นค่าเริ่มต้นมันจะเป็นตัวดัดแปลงเริ่มต้นที่มีขอบเขตภายในแพคเกจ
สำหรับข้อมูลเพิ่มเติมคุณสามารถอ้างอิงhttp://wiki.answers.com/Q/What_is_default_access_specifier_in_Java