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 โดยตรง เช่น 

     ถึงแม้เราจะไม่ได้ใช้คลาสนี้และอีกหลายๆคลาสที่จะกล่าวถึง แต่การรู้จักกับคลาสเหล่านี้จะช่วยให้เราเข้าใจภาษาจาวามากขึ้น