Module : java.base / Package : java.lang
การสืบทอด : java.lang.Object > java.lang.Class<T>
public final class Class<T> extends Object implements Serializable, GenericDeclaration, Type, AnnotatedElement, TypeDescriptor.OfField<Class<?>>, Constable
ตามที่เราได้เรียนรู้ว่าในโครงสร้างของภาษาจาวา ออบเจกต์สร้างมาจากพิมพ์เขียวที่เรียกว่าคลาส และในการทำงานเราทำงานกับออบเจกต์เป็นหลัก โดยออบเจกต์จะเป็นตัวแทนของสิ่งต่างๆ ทีนี้ถ้าเราต้องการอ้างอิงถึงคลาสเราก็ต้องมีออบเจกต์ที่เป็นตัวแทนของคลาสเช่นกัน
คลาส Class<T> เป็นคลาสที่ถูกใช้ในการสร้างออบเจกต์ที่เป็นตัวแทนของคลาสและคลาสแบบอินเตอร์เฟส รวมถึงคลาสที่เป็น enum คลาสที่เป็น record คลาสแบบอินเตอร์เฟส annotation และสำหรับชนิดข้อมูลอาเรย์ ข้อมูลแบบ primitype data type และคีย์เวิร์ด void ก็มีออบเจกต์จากคลาส Class<T> เป็นตัวแทนเช่นกัน โดยชนิดข้อมูลของออบเจกต์จะถูกระบุด้วยพารามิเตอร์ T เช่น ชนิดของข้อมูล String จะถูกระบุเป็น Class<String> แต่ถ้าระบุชนิดข้อมูลไม่ได้จะระบุเป็น Class<?>
คลาส Class<T> ไม่มีเมธอดคอนสตรัคเตอร์ดังนั้นเราไม่สามารถสร้างออบเจกต์ของคลาส Class<T> ได้เอง ออบเจกต์ของคลาส Class<T> จะถูกสร้างโดย Java Virtual Machine เมื่อมีการ run แอพพลิเคชั่น
สังเกตุว่าคลาส Class ถูกกำหนดให้เป็น final ดังนั้นจึงไม่มีการสืบทอดไปยังคลาสอื่นๆ ถ้าเราจะเรียกใช้เมธอดของออบเจกต์จากคลาส Class<T> เราต้องใช้เมธอด getClass() ซึ่งสืบทอดมาจากคลาส Object ซึ่งให้ผลลัพธ์เป็นออบเจกต์ Class จากนั้นจึงเรียกใช้เมธอดต่างๆจากออบเจกต์ Class เช่น
หรือเราเรียกใช้โดยอ้างถึงชื่อคลาส Class โดยตรง เช่น
ถึงแม้เราจะไม่ได้ใช้คลาสนี้และอีกหลายๆคลาสที่จะกล่าวถึง แต่การรู้จักกับคลาสเหล่านี้จะช่วยให้เราเข้าใจภาษาจาวามากขึ้น