อาเรย์คลาสคืออะไร?

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

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

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