
-
จำเป็นต้องมี ตัวแก้ไขการเข้าถึงซึ่งอธิบายการเข้าถึงของคลาส วัตถุ หรือฟิลด์: ในกรณีที่ไม่มี JVM (นี่คือแหล่งที่มาของเวทมนตร์สากล) จะกำหนดตัวระบุเริ่มต้นให้กับแพ็คเกจโดยอัตโนมัติ
เริ่มจากตัวแก้ไขตัวที่สอง จะมีตัวแก้ไขที่ไม่สามารถเข้าถึงได้ ซึ่งไม่ได้บังคับและยังสามารถขัดแย้งกันเองได้ (แต่สิ่งแรกต้องมาก่อน)
-
ตัวแก้ไขแบบคงที่บ่งชี้ว่าคลาส วัตถุ หรือฟิลด์เป็นแบบคงที่ แต่มันหมายความว่าอะไร? โดยพื้นฐานแล้วเราจะลองทำในสนาม
ตัวแปรแบบคงที่เรียกว่าตัวแปรคลาสและเป็นตัวแปรเฉพาะสำหรับอินสแตนซ์ทั้งหมดของคลาสนั้น สามารถเรียกใช้เมธอดแบบคงที่ได้โดยไม่ต้องสร้างอ็อบเจ็กต์ที่มีการประกาศ คลาสแบบคงที่ถูกใช้เมื่อซ้อนคลาสหนึ่งไปยังอีกคลาสหนึ่ง และหลักการของการโต้ตอบระหว่างคลาสภายในและคลาสภายนอกนั้นคล้ายคลึงกับวิธีการ (นี่คือหัวข้อสำหรับการอภิปรายแยกต่างหาก) ยังสามารถใช้เป็นบล็อกแยกต่างหากภายในวัตถุได้
-
ตัวแก้ไขFinal บ่ง ชี้ให้ตัวแปรทราบได้อย่างมีประสิทธิภาพว่าเป็นค่าคงที่ สำหรับเมธอด - ไม่สามารถแทนที่เมธอดเหล่านั้นได้ในระหว่างการสืบทอด แต่สำหรับคลาส นี่เป็นข้อบ่งชี้ว่าไม่สามารถสืบทอดจากเมธอดได้ (ไม่เปลี่ยนรูป)
ตัวแก้ไขแบบคงที่และแบบสุดท้ายใช้กับคลาส อ็อบเจ็กต์ และฟิลด์ อย่างไรก็ตาม มีตัวดัดแปลงที่ใช้กับบางส่วนเท่านั้น (หรือแม้แต่บางส่วน เนื่องจากทั้งตัวแปรและวิธีการเป็นฟิลด์ แต่ไม่ใช่ว่าตัวดัดแปลงทั้งหมดจะใช้กับทั้งสองอย่าง) หากเราวาดการเปรียบเทียบ มีเพียงรองเท้าบูทและถุงมือเท่านั้นที่สามารถร่ายมนตร์เพื่อความเร็วได้ (เพื่อให้มันเคลื่อนที่เร็วขึ้น) แต่การร่ายมนตร์หมวกเพื่อความเร็วนั้นไร้จุดหมาย (และ Universal Supervisory Council (คอมไพเลอร์) จะไม่อนุญาตให้ทำ)
-
ตัวแก้ไขAbstract ใช้กับเมธอดและคลาสเท่านั้น วิธีนามธรรมคือวิธีการที่ไม่มีการดำเนินการ (เนื้อหา)
หากคลาสถูกทำเครื่องหมายว่าเป็นนามธรรม คลาสนั้นจะมีวิธีที่เป็นนามธรรมหรือทำเพื่อป้องกันการสร้างอินสแตนซ์ของคลาสนั้น หากเราวาดการเปรียบเทียบ ตรงกลางของคำแนะนำ คุณจะเห็นหัวข้อ "การระบายสีวัตถุ" หลังจากนั้นจะไม่มีคำอธิบาย เหล่านั้น. การใช้คำสั่งนี้ คุณสามารถสร้างวัตถุและระบายสีวัตถุได้ แต่คำสั่งเฉพาะนี้ไม่ได้บอกว่าอย่างไร (เขียนคำสั่งของคุณเองสำหรับการสร้างวัตถุสีแดงโดยอิงจากวัตถุนี้และอธิบายวิธีการระบายสี)
-
ตัวแก้ไขแบบซิงโครไนซ์ ใช้สำหรับวิธีการเท่านั้น การมีอยู่บ่งชี้ว่ามีเพียงเธรดเดียวเท่านั้นที่สามารถดำเนินการได้ในแต่ละครั้ง ยังสามารถใช้เป็นบล็อกแยกต่างหากของโค้ดภายในออบเจ็กต์ (ระบุออบเจ็กต์การซิงโครไนซ์)
-
ตัวแก้ไขระเหย - สำหรับตัวแปรเท่านั้น ขอแนะนำให้ใช้สำหรับตัวแปรที่สามารถใช้งานได้พร้อมกันหลายเธรด ตัวแปรที่มีตัวปรับแต่งดังกล่าวจะถูกคัดลอกทันทีจากแคชของโปรเซสเซอร์ไปยังหน่วยความจำหลักทุกครั้งที่มีการเปลี่ยนแปลง ทำให้เธรดแบบขนานสามารถรับค่าล่าสุดได้
เป็นที่น่าสังเกตว่าความผันผวนนั้นสามารถใช้ได้ในกรณีที่มีเพียงเธรดเดียวเท่านั้นที่สามารถเขียนไปยังตัวแปรได้ และส่วนที่เหลือสามารถอ่านได้เท่านั้น สำหรับกรณีอื่นๆ จะเป็นการดีกว่าถ้าเพิ่มตัวแก้ไขแบบซิงโครไนซ์ให้กับวิธีการที่เขียนลงในตัวแปรระเหย
-
ตัวแก้ไขชั่วคราว – สำหรับตัวแปรเท่านั้น ตัวปรับแต่งนี้ทำเครื่องหมายตัวแปรที่ต้องข้ามเมื่อทำให้วัตถุเป็นอนุกรม (นี่เป็นกระบวนการที่ชาญฉลาด โดยหลักการแล้ว คุณสามารถอ่านเกี่ยวกับมันได้ด้วยตัวเอง...)*
* - ฉันเขียนบทความนี้ที่ระดับ 17 และจนถึงตอนนั้นยังไม่ได้อธิบายการทำให้เป็นอนุกรมเนื่องจากกระบวนการยังไม่ได้รับการอธิบาย ดังนั้นแทนที่จะคัดลอกและวาง ฉันขอแนะนำให้คุณศึกษาด้วยตนเองหากจำเป็น
- สุดท้ายและผันผวน - เมื่อพูดถึงตัวแปร เราไม่สามารถพูดพร้อมๆ กันได้ว่ามันเป็นครั้งสุดท้าย (คงที่) และหลายเธรดมีความสามารถในการเปลี่ยนแปลง... ท้ายที่สุดแล้ว ค่าคงที่ และเมื่อใดก็ตาม เธรดก็สามารถอ่านได้ แต่ไม่มีเธรดเดียวที่สามารถเปลี่ยนค่าคงที่ได้ (Universal Supervisory Council จะไม่อนุญาต)
- ขั้นสุดท้ายและบทคัดย่อ - คลาสและวิธีการไม่สามารถเป็นทั้งนามธรรมได้ (ซึ่งโดยส่วนใหญ่แสดงถึงความจำเป็นในการชี้แจงให้ชัดเจนสำหรับการนำไปปฏิบัติ) และขั้นสุดท้าย เช่น ไม่เปลี่ยนรูป ปรากฎว่าคำแนะนำระบุวิธีสร้างหมวกกันน็อคที่ดีทนทานจากวัสดุใด ๆ (ส่วนนามธรรม) แต่ในกรณีนี้จะต้องไม่มีรูในนั้น (ส่วนบังคับสุดท้ายไม่สามารถเปลี่ยนได้)
- นามธรรมและคงที่ - วิธีนามธรรมไม่สามารถคงที่หรือซิงโครไนซ์ในเวลาเดียวกันได้ วิธีการนามธรรมแบบคงที่ไม่สมเหตุสมผลเพราะไม่เพียงแต่ไม่ได้ทำอะไรเลย แต่ยังเป็นของทั้งคลาสด้วย - ผลลัพธ์คือสิ่งที่ไร้ประโยชน์
- นามธรรมและซิงโครไนซ์ - อะไรคือจุดสำคัญของการซิงโครไนซ์งานกับวิธีการที่ไม่ทำอะไรเลย?

GO TO FULL VERSION