การลบตัวดัดแปลงการเข้าถึง
แรกเริ่ม Java นั้นมีprivate protected
ตัวดัดแปลง แต่มันถูกลบออกใน JDK 1.0.2 ( เวอร์ชันที่เสถียรแรกคือ Java 1.0 ที่เรารู้จักในปัจจุบัน) บทแนะนำเล็กน้อยเกี่ยวกับ JDK 1.0.2 ( ที่นี่และที่นี่ ) พูดต่อไปนี้:
หมายเหตุ: 1.0 เปิดตัวของภาษา Java สนับสนุนห้าระดับการเข้าถึง: private protected
ที่ระบุไว้ข้างต้นบวกสี่ private protected
ระดับการเข้าถึงไม่ได้รับการสนับสนุนในรุ่นของ Java สูงกว่า 1.0; คุณไม่ควรใช้มันในโปรแกรม Java ของคุณอีกต่อไป
คำตอบอื่น ๆเกี่ยวกับ SoftwareEngineering.SEระบุ:
Java เดิมมีตัวดัดแปลงดังกล่าว มันถูกเขียนprivate protected
แต่ลบออกใน Java 1.0
ตอนนี้มาดูประวัติของJava Version :
JDK 1.0
รุ่นแรกเปิดตัวเมื่อวันที่ 23 มกราคม 1996และเรียกว่าโอ๊ค JDK 1.0.2 เวอร์ชั่นเสถียรแรกเรียกว่า Java 1
จากนี้เราสามารถสรุปบทเรียนเกี่ยวกับรุ่น 1.0.2 อ้างถึงรุ่นแรกมาก JDK 1.0 ซึ่งภาษาถูกเรียกว่า Oak แต่หนึ่งใน SoftwareEngineering.SE หมายถึงรุ่นมั่นคงแรก JDK 1.0.2 เรียก Java 1.0 ซึ่งถูกลบ
ตอนนี้ถ้าคุณพยายามค้นหาในเอกสารคู่มือJava 1.0คุณจะไม่พบมันเพราะอย่างที่กล่าวไปแล้วมันถูกลบใน JDK 1.0.2 หรือที่เรียกว่า Java 1.0 สิ่งนี้ได้รับการพิสูจน์อีกครั้งเมื่อคุณดูเวลา "แก้ไขครั้งล่าสุด" สำหรับลิงค์ที่คุณโพสต์ ลิงก์ที่คุณโพสต์ได้รับการแก้ไขครั้งล่าสุดในเดือนกุมภาพันธ์ปี 1996 Java 1.0 / JDK 1.0.2 เมื่อprivate protected
ถูกลบออกได้รับการปล่อยตัวหลังจากเดือนกุมภาพันธ์ปี 1996และเป็นไปตามข้อกำหนดของเดือนสิงหาคมปี 1996
เหตุผลในการกำจัด
บางแหล่งข่าวยังอธิบายเหตุผลในการprivate protected
เช่นนี้อย่างใดอย่างหนึ่ง อ้างถึง:
ส่วนตัวได้รับการคุ้มครองอะไรบ้าง
ในช่วงต้นของภาษา Java private protected
ได้รับอนุญาตให้บางอย่างรวมกันของการปรับเปลี่ยนซึ่งหนึ่งในนั้นคือ ความหมายของprivate protected
คือการ จำกัด การมองเห็นอย่างเคร่งครัดกับคลาสย่อย (และลบการเข้าถึงแพคเกจ) หลังจากนี้ถือว่าค่อนข้างไม่สอดคล้องกันและซับซ้อนเกินไปและไม่สนับสนุนอีกต่อไป [5]
[5] ความหมายของโมดิprotected
ฟายเออร์มีการเปลี่ยนแปลงใน Java รุ่นเบต้า 2 และprivate protected
ชุดค่าผสมจะปรากฏขึ้นพร้อมกัน พวกเขาปะรูโหว่ด้านความปลอดภัยที่อาจเกิดขึ้นได้
และ SoftwareEngineering.SE ยังสนับสนุนสิ่งนี้โดยบอกว่ามันไม่คุ้มกับความไม่สอดคล้องและความซับซ้อนที่เพิ่มขึ้นดังนั้นมันจึงถูกลบออกไปก่อน
การตีความ
การตีความของฉันทั้งหมดนี้คือบางทีย้อนกลับไปในยุคโอ๊กทั้งคู่ได้รับอนุญาตให้อยู่ร่วมกัน (ดังนั้นการรวมกัน) ตั้งแต่protected
ความหมายเปลี่ยนไป1อาจมีความจำเป็นในการอนุญาตprivate
และprotected
ในเวลาเดียวกัน การแนะนำเริ่มซับซ้อนเกินไปและไม่คุ้มค่าและถูกทิ้งไว้ในที่สุด เมื่อถึงเวลา Java 1.0 / JDK 1.0.2 จะถูกลบทิ้งและไม่พบในเอกสารประกอบ
1ในข้อกำหนดภาษาของ Oakส่วนที่ 4.10 การเข้าถึงตัวแปรและวิธีการมีการบันทึกไว้ว่าตัวดัดแปลงเริ่มต้นคือprotected
:
โดยค่าเริ่มต้นตัวแปรทั้งหมดและวิธีการในชั้นเรียนจะได้รับการคุ้มครอง
สิ่งนี้ค่อนข้างแตกต่างจากสิ่งที่เรามีในปัจจุบันซึ่งเป็นการเข้าถึงแพ็คเกจเริ่มต้น สิ่งนี้อาจปูทางสำหรับความต้องการprivate protected
เนื่องจากprivate
มีข้อ จำกัด มากเกินไปและprotected
สุภาพเกินไป