อักขระสิทธิ์การเข้าถึง:
(1) สาธารณะ:
สำหรับสมาชิก: ชั้นเรียนอื่น ๆ สามารถเข้าถึงได้ไม่ว่าจะอยู่ในกระเป๋าใบเดียวกันหรือในกระเป๋าใบอื่น
สำหรับชั้นเรียน: เหมือนกัน
(2) เป็นมิตร:
สำหรับสมาชิกเก่า: หากสมาชิกของชั้นเรียนไม่มีการปรับเปลี่ยนการอนุญาตใด ๆ ประตูของมันคือสิทธิ์การเข้าถึงแพ็คเกจเริ่มต้น
มันไม่ใช่คำหลักใน Java แต่นี่เป็นวิธีที่จะแสดงออกด้วยตนเอง สามารถเข้าถึงคลาสอื่น ๆ ในแพ็คเกจเดียวกันได้ แต่อยู่นอกแพ็คเกจ
เลขที่ สำหรับคลาสที่ไม่ได้อยู่ภายใต้โฟลเดอร์เดียวกันโดยไม่มีแพ็คเกจ Java จะเห็นคลาสเหล่านี้โดยอัตโนมัติภายใต้ไดเรกทอรีที่เป็นของไดเรกทอรีนี้
แพ็คเกจเริ่มต้นสามารถโทรหาสมาชิกที่เป็นมิตรในชั้นเรียน ตัวอย่างเช่นสองคลาสต่อไปนี้อยู่ในสองไฟล์ของโฟลเดอร์เดียวกันตามลำดับ
แม้ว่ามันจะไม่ได้รับการแนะนำในแพ็คเกจ แต่ก็เป็นของแพ็คเกจเริ่มต้นเดียวกัน
sundae คลาส {// สองวิธีต่อไปนี้ค่าเริ่มต้นคือ sundae ที่เป็นมิตร () {} void f () {system.out.println ("sundae.f ()"); = sundae ใหม่ ();
สำหรับคลาส: คลาสในแพ็คเกจเดียวกันสามารถใช้งานได้ ในระยะสั้นชั้นเรียนสามารถประกาศว่าเป็นสาธารณะหรือเป็นมิตรเท่านั้น
(3) ส่วนตัว:
สำหรับสมาชิก: การเข้าถึงคลาสที่สมาชิกเป็นของสมาชิกเท่านั้น
sundae คลาส {private sundae () {} // เท่านั้นที่สามารถเรียกได้ว่า sundae (int i) {} sundae makasundae (); ของฟังก์ชั่น sundae () เป็นส่วนตัวดังนั้น // ดังนั้นจึงไม่สามารถเริ่มต้นได้โดย // sundae x = sunae ใหม่ ();
สำหรับชั้นเรียน: ชั้นเรียนไม่สามารถประกาศเป็นส่วนตัวได้
(4) ได้รับการปกป้อง:
สำหรับสมาชิก: คลาสในแพ็คเกจเดียวกันสามารถเข้าถึงได้ (สิทธิ์การเข้าถึงแพ็คเกจ);
(5) ค่าเริ่มต้น (สิทธิ์เริ่มต้น)
คลาสสมาชิกข้อมูลวิธีการสร้างและสมาชิกวิธีการทั้งหมดสามารถใช้สิทธิ์เริ่มต้นได้นั่นคือไม่มีคำหลักที่เขียน การอนุญาตเริ่มต้นคือการอนุญาตแพ็คเกจเดียวกัน
ตัวอย่าง: แพ็คเกจ C05.Local;
นำเข้า Pack1.cookie; คุกกี้คลาสไม่ได้อยู่ในแพ็คเกจและแต่ละคนมีสิทธิ์ในการเข้าถึงแพ็คเกจ ไม่เป็นไปตามข้อกำหนดของความเป็นส่วนตัวดังนั้นจึงเป็นการดีที่สุดที่จะตั้งค่าเป็น Protect "chocolatechip constructor");
แพ็คเกจแพคเกจ 1;
มีคำอธิบายที่ดีกว่าสำหรับการอนุญาตของชั้นเรียน:
สิทธิ์การเข้าถึงสำหรับชั้นเรียน:
สาธารณะ: สามารถเข้าถึงได้โดยทุกชั้นเรียน
ค่าเริ่มต้น: ค่าเริ่มต้นสามารถเรียกได้ว่าเป็นมิตร แต่ไม่มีตัวดัดแปลงของ Friendly ในภาษา Java สิทธิ์การเข้าถึงเริ่มต้นคือสิทธิ์การเข้าถึงแพ็คเกจ
นั่นคือถ้าคลาสไม่ได้เขียนตัวปรับเปลี่ยนการเข้าถึงที่ถูกต้องแล้วหน่วยงานการเข้าถึงเริ่มต้นคลาสภายใต้แพ็คเกจเดียวกันสามารถเข้าถึงได้แม้ว่าจะสามารถสร้างอินสแตนซ์ได้ทันที (แน่นอนถ้าคลาสนี้ไม่มีความสามารถในการสร้างอินสแตนซ์ ยกเว้นว่ายกเว้นความสามารถของอินสแตนซ์ตัวอย่างเช่นคลาสนี้ไม่ได้ให้ตัวสร้างสาธารณะ)
ภาพประกอบ:
1. แต่ละหน่วยการรวบรวม (ไฟล์คลาส) สามารถมีคลาสสาธารณะเดียวได้
2. ชื่อของคลาสสาธารณะ (รวมถึงกรณี) จะต้องเป็นชื่อเดียวกับประเภทของไฟล์
3. คลาสสาธารณะอาจไม่มีอยู่ในไฟล์คลาส (*.java)
รูปแบบของการดำรงอยู่นี้: ถ้าเราเขียนชั้นเรียนในกระเป๋าเราจะร่วมมือกับงานประเภทอื่นในกระเป๋าใบเดียวกันและเราไม่ต้องการเขียนเอกสารคำอธิบายให้กับลูกค้า (ไม่จำเป็นต้องเป็นลูกค้าลูกค้าที่สมจริง มันอาจจะเรียกคลาสนี้) เพื่อดูและทำร้ายสมองและอาจเป็นไปได้ที่จะเปลี่ยนวิธีการดั้งเดิมอย่างสมบูรณ์หลังจากระยะเวลาหนึ่งและละทิ้งเวอร์ชันเก่าและแทนที่ด้วยเวอร์ชันใหม่
4. ชั้นเรียนไม่สามารถเป็นส่วนตัวและได้รับการปกป้อง
5. หากคุณไม่ต้องการวัตถุใด ๆ ที่สร้างคลาสที่แน่นอนคุณสามารถตั้งค่าตัวสร้างทั้งหมดของคลาสเป็นส่วนตัว แต่สิ่งนี้สามารถสร้างวัตถุของคลาสนี้ได้นั่นคือสมาชิก (แอตทริบิวต์และวิธีการ) ของคลาสคงที่สามารถทำได้
ตัวอย่างที่ครอบคลุม:
First.java:
หมายเลขแพ็คเกจ; Frist (); แพ็คเกจเดียวกัน (ts);}}
เอาท์พุท:
Java Hello Test Test Hello Test