ตัวแปรแบบคงที่คืออะไร?

ตัวแปรสแตติกหรือที่เรียกว่าตัวแปรทั่วโลกเป็นชิ้นส่วนของข้อมูลที่ไม่เกี่ยวข้องกับอินสแตนซ์เฉพาะของคลาส มีเพียงหนึ่งค่าสำหรับตัวแปรเหล่านี้เท่านั้นที่มีอยู่โดยไม่คำนึงถึงจำนวนของคลาสอ็อบเจ็กต์ที่สร้างขึ้น ตัวแปรสแตติกอาจมีความยืดหยุ่นหรือ จำกัด กว่าตัวแปรอินสแตนซ์ซึ่งขึ้นอยู่กับบริบทซึ่งมีค่าที่ไม่ต่อเนื่องของตัวเองสำหรับวัตถุเฉพาะทุกประเภทของคลาส ในภาษาโปรแกรมเชิงวัตถุการเขียนโปรแกรมที่ดีมักจะบอกว่าการใช้วัตถุคงที่วิธีการหรือตัวแปรจะถูกเก็บไว้ให้น้อยที่สุด แต่พวกเขามีโปรแกรมที่มีประโยชน์

เหตุผลหลักหนึ่งที่ตัวแปรสแตติกถูกพิจารณาว่ามีข้อ จำกัด ในบางครั้งอาจเป็นเพราะไม่มีค่ามากกว่าหนึ่งค่าสำหรับตัวแปร การกำหนดให้กับตัวแปรจะเขียนทับตัวแปรก่อนหน้าและข้อมูลใด ๆ ในค่าก่อนหน้านี้จะสูญหายไป หากไม่มีตัวแปรหลายชุดค่าข้อมูลหลายค่าจะไม่สามารถจัดเก็บได้ หากมีการเปลี่ยนแปลงค่าวัตถุทุกชิ้นที่มีผลกระทบจะต้องทำงานด้วยค่าใหม่และหากไม่ได้หมายถึงค่าเก่าที่ถูกลบการเปลี่ยนแปลงสามารถพิสูจน์ได้ว่าเป็นอันตรายต่อวัตถุทุกอินสแตนซ์ของประเภทคลาสเฉพาะ ความเสี่ยงของการเปลี่ยนแปลงที่ไม่คาดคิดและความเสียหายที่ตามมาอาจทำให้เกิดความเสียหายต่อวัตถุทำให้โปรแกรมเมอร์บางคนหลีกเลี่ยงตัวแปรสแตติกเมื่อใดก็ตามที่เป็นไปได้

บางครั้งตัวแปรสแตติกสามารถพิจารณาความยืดหยุ่นด้วยเหตุผลเดียวกันกับที่พวกเขาอาจเรียกว่า จำกัด แม้ว่าค่าของตัวแปรจะไม่ถูกล็อคการเปลี่ยนแปลงค่าตามแผนอาจมีผลในเชิงบวก ตัวแปรที่ใช้ร่วมกันระหว่างออบเจ็กต์ทั้งหมดของคลาสได้รับการรับรองว่ามีความสอดคล้องกันและสามารถใช้งานได้ทั้งภายในและภายนอกชั้นเรียนด้วยความมั่นใจว่าค่าของมันจะเหมือนกันเสมอ ตัวแปรที่เป็นแบบสแตติกมีแอปพลิเคชั่นที่มีประโยชน์มากมายโดยเฉพาะอย่างยิ่งในการบำรุงรักษาค่าคงที่และการใช้งานการทำให้เป็นอนุกรม Java โดยเฉพาะอาศัยกลไกการทำให้เป็นอันดับแบบคงที่นี้มาก

มีกฎทั่วไปบางประการที่โปรแกรมเมอร์มักจะใช้ในขณะที่ใช้ตัวแปรคงที่ ตัวแปรเหล่านี้มักจะทำงานได้ดีที่สุดในฐานะค่าข้อมูลขนาดเล็กเนื่องจากวัตถุสแตติกขนาดใหญ่สามารถทำให้โปรแกรมมีความยืดหยุ่นมากกว่าที่เป็นอยู่ ค่าข้อมูลขนาดเล็กสามารถเปลี่ยนแปลงได้อย่างรวดเร็วและง่ายดายโดยไม่ต้องกลัวว่าจะเกิดข้อผิดพลาดมากเกินไป วัตถุสแตติกขนาดใหญ่ใช้เวลาและความพยายามในการเปลี่ยนแปลงมากขึ้นและมีแนวโน้มที่จะเกิดข้อผิดพลาดมากขึ้นซึ่งจะทำลายวัตถุคลาสทั้งหมด นี่เป็นแนวทางไม่ใช่กฎที่ไม่สามารถทำลายได้และอาจมีการใช้สำหรับตัวแปรทั้งขนาดเล็กและขนาดใหญ่ขึ้นอยู่กับโปรแกรม