เมื่อคำพูดไปไม่มีสี่เหลี่ยมจัตุรัสหรือวงกลมโดยไม่มีกฎ ในฐานะที่เป็นภาษาการเขียนโปรแกรมระดับสูงที่มุ่งเน้นวัตถุอย่างเข้มงวด Java จึงมีการควบคุมอย่างเข้มงวดในเรื่องการอนุญาตที่สำคัญทั้งหมด
ใน Java คุณสามารถตั้งค่าสิทธิ์การควบคุมการเข้าถึงผ่านคำหลัก Java บางคำ
ส่วนใหญ่รวมถึงส่วนตัว (ส่วนตัว), แพ็คเกจ (สิทธิ์การเข้าถึงแพ็คเกจ), การป้องกัน (การอนุญาตการเข้าถึงย่อย) และสาธารณะ (อนุญาตให้เข้าถึงสาธารณะ)
ใน Java ข้อความเหล่านี้สามารถปรับเปลี่ยนตัวแปรสมาชิกและวิธีการในชั้นเรียน แต่มีเพียงประเภทสาธารณะและเป็นมิตรเท่านั้นที่สามารถปรับเปลี่ยนคลาสได้ ตัวอย่างเช่น:
ถัดไปให้อธิบายรายละเอียดเกี่ยวกับความแตกต่างระหว่างการอนุญาตเหล่านี้ (มีตารางที่ส่วนท้ายของบล็อก) จากต่ำถึงสูงตามการอนุญาต: (สิทธิ์สูงมีคุณสมบัติทั้งหมดของการอนุญาตต่ำ)
ส่วนตัว:
วิธีการส่วนตัวทั้งหมดและตัวแปรสมาชิกส่วนตัวในชั้นเรียนสามารถเข้าถึงได้ในชั้นเรียนเท่านั้นและไม่ได้อยู่ในชั้นเรียนอื่น
ตัวอย่างเช่น:
แพ็คเกจหลัก; คลาสสาธารณะส่วนตัว {ส่วนตัว int a; int ส่วนตัว b; protected () {this.a = 1; this.b = 2; // a และ b สามารถเรียกได้ในชั้นเรียนส่วนตัว} ชุดโมฆะส่วนตัว () {system.out.println (""+a+""+b+"/n");เป็นมิตรและได้รับการปกป้อง:
หากมีการประกาศคลาสอื่นในคลาสอื่นหากทั้งสองอยู่ในแพ็คเกจหนึ่งแล้วคลาสอื่น ๆ สามารถเข้าถึงตัวแปรที่เป็นมิตรของคลาสอื่นได้ แพ็คเกจที่แตกต่างไม่สามารถเข้าถึงได้:
หากมีการประกาศคลาส A อื่นในคลาส B อื่นหากทั้งสองอยู่ในแพ็คเกจหนึ่งดังนั้นคลาส B อื่นสามารถเข้าถึงตัวแปรที่ได้รับการป้องกัน (หรือวิธีการ) ของคลาสอื่น ๆ A. ถ้าไม่อยู่ในแพ็คเกจดังนั้นถ้าคลาส A มีคลาสหลัก C หากมีตัวแปรที่ได้รับการป้องกัน (หรือวิธีการ) แพ็คเกจจากนั้น A สามารถใช้วิธีการป้องกันใน B
ตัวอย่างเช่น:
แพ็คเกจหลัก; นำเข้าได้รับการป้องกัน*; คลาสสาธารณะหลัก {โมฆะคงที่สาธารณะหลัก (สตริง args []) {ป้องกัน jkl = ใหม่ได้รับการป้องกัน (); jkl.print (); // การเรียกวิธีการป้องกันของ JKL Parent Class frindly prot = new frindly (); คลาส}} แพ็คเกจหลัก; คลาสสาธารณะ frindly {int a, b, c, d; frindly () {a = b = c = d = 1;} void set () {system.out.out.print (""+a+"" b+"/n");}} แพ็คเกจหลัก ProtectedFather () {this.a = 1; this.b = 2; // a และ b สามารถเรียกได้ในการป้องกัน} ชุดโมฆะส่วนตัว () {system.out.println (""+a+""+b+"/n"); Protected () {super (); // การเรียกใช้วิธีการป้องกันตัวสร้าง super.a = 12 ในคลาสหลักในแพ็คเกจอื่น; // เรียกตัวแปรป้องกันของคลาสแม่}}}สาธารณะ:
หากวิธีการหรือตัวแปรในชั้นเรียนเป็นแบบสาธารณะก็สามารถเรียกได้ในชั้นเรียนอื่นโดยไม่มีข้อ จำกัด (ใช้ในแพ็คเกจ Scoop) นำออกจากคลาส B ในแพ็คเกจอื่น ๆ
แพ็คเกจหลัก; นำเข้าสาธารณะ*; คลาสสาธารณะหลัก {โมฆะคงที่สาธารณะหลัก (สตริง args []) {int a; public p = public ใหม่ (); // การเรียกวิธีการสาธารณะในคลาสสาธารณะ A = PA; // การเรียกตัวแปรสาธารณะ P.Set () ในชั้นเรียนสาธารณะ;}} แพคเกจสาธารณะแบบฟอร์มสรุป:
| แพ็คเกจเดียวกัน | แพ็คเกจที่แตกต่างกัน | |||
คลาสย่อย | ไม่รวม | คลาสย่อย | ไม่รวม | ||
ส่วนตัว | ใช่ | เลขที่ | เลขที่ | เลขที่ | เลขที่ |
เป็นกันเอง | ใช่ | ใช่ | ใช่ | เลขที่ | เลขที่ |
ได้รับการคุ้มครอง | ใช่ | ใช่ | ใช่ | ใช่ | เลขที่ |
สาธารณะ | ใช่ | ใช่ | ใช่ | ใช่ | ใช่ |
สรุป
ข้างต้นเป็นเนื้อหาทั้งหมดของบทความนี้เกี่ยวกับการพูดคุยสั้น ๆ ถึงสี่ประเภทของการอนุญาตในการมุ่งเน้นวัตถุ Java และฉันหวังว่ามันจะเป็นประโยชน์กับทุกคน เพื่อนที่สนใจสามารถอ้างถึงหัวข้ออื่น ๆ ที่เกี่ยวข้องในเว็บไซต์นี้ต่อไป หากมีข้อบกพร่องใด ๆ โปรดฝากข้อความไว้เพื่อชี้ให้เห็น ขอบคุณเพื่อนที่ให้การสนับสนุนเว็บไซต์นี้!