บทความนี้ส่วนใหญ่แนะนำการจำแนกประเภทภาษา Java และการวางนัยทั่วไป (คำอธิบายโดยละเอียด) ข้อมูลนี้บันทึกคลาสของแต่ละวัตถุ เครื่องเสมือนมักใช้วิธีการที่ถูกต้องในการเรียกใช้ข้อมูลประเภทที่จะดำเนินการ คลาสคลาสห่อหุ้มสถานะและสถานะของอินเทอร์เฟซกำลังทำงานอยู่
ที่จะพูดอย่างชัดเจน:
คลาสคลาสยังเป็นคลาสด้วย แต่ชื่อคล้ายกับคำหลักของคลาส Java เป็นภาษาที่ละเอียดอ่อน
เนื้อหาของคลาสคลาสคือข้อมูลประเภทของคลาสที่คุณสร้างขึ้น
วัตถุของคลาสคลาสไม่สามารถสร้างได้ในรูปแบบใหม่ () เช่นคลาสธรรมดาเท่านั้น
บทบาทของคลาสคลาสคือการให้หรือรับข้อมูลประเภทที่ให้หรือรับวัตถุบางอย่างในระหว่างการรันไทม์ซึ่งคล้ายกับฟังก์ชั่น tydeID () ใน C ++ ข้อมูลนี้ยังสามารถใช้สำหรับการสะท้อนกลับ
1. หลักการคลาสคลาส
เราทุกคนรู้ว่าคลาส Java ทั้งหมดสืบทอดคลาส Object ชั้นเรียน เราไม่สามารถสร้างวัตถุคลาส (ตัวสร้างเป็นส่วนตัว) และวัตถุของคลาสนี้คือการสร้างวัตถุคลาสโดยอัตโนมัติโดยเครื่องเสมือน Java เมื่อถูกถ่ายโอนหรือสร้างโดยวิธีการกำหนดในตัวโหลด วัตถุที่เราสร้างจะมีฟิลด์เพื่อบันทึกตำแหน่งของวัตถุของวัตถุในคลาสคลาสของวัตถุ ดังที่แสดงในรูปด้านล่าง:
2. รับวัตถุคลาสคลาส
วิธีแรกคือฟังก์ชัน forname ของคลาสคลาส
คัดลอกรหัสรหัสดังนี้:
รูปร่างระดับสาธารณะ {}
คลาส obj = class.forname ("รูปร่าง");
วิธีที่สองคือการใช้วัตถุของวัตถุของวัตถุ
คัดลอกรหัสรหัสดังนี้:
รูปร่างระดับสาธารณะ {}
รูปร่าง s1 = รูปร่างใหม่ ();
คลาส obj = s1.getclass ();
Class OBJ1 = S1.GetSuperClass ();
วิธีที่สามคือการใช้ประเภทของประเภทค่าคงที่
คัดลอกรหัสรหัสดังนี้:
คลาส obj = string.class;
คลาส obj1 = int.class;
โปรดทราบว่าเมื่อใช้วิธีนี้เพื่อสร้างวัตถุคลาสคลาส JVM จะไม่โหลดคลาสโดยอัตโนมัติ (เช่นสตริง) วิธีอื่น ๆ จะทำให้ JVM เริ่มต้นคลาสนี้
3. ใช้วัตถุของคลาสคลาสเพื่อสร้างอินสแตนซ์ของคลาสเป้าหมาย
อินสแตนซ์วัตถุที่ไม่ถูกต้อง
หลังจากได้รับวัตถุของคลาสคลาสแล้วคุณสามารถใช้ฟังก์ชัน Newinstance () เพื่อสร้างอินสแตนซ์ของคลาสเป้าหมาย อย่างไรก็ตามฟังก์ชั่นนี้ไม่ได้สร้างอินสแตนซ์ของคลาสเป้าหมายโดยตรงและสามารถสร้างอินสแตนซ์ของคลาสวัตถุได้เท่านั้น
คัดลอกรหัสรหัสดังนี้:
คลาส obj = class.forname ("รูปร่าง");
Object shapesinstance = obj.newinstance ();
ใช้คลาสทั่วไปเพื่ออ้างอิงอินสแตนซ์เป้าหมายของประเภทเข็มขัดประเภท
คัดลอกรหัสรหัสดังนี้:
ชั้น <รูปร่าง> obj = shapes.class;
รูปร่าง newshape = obj.newinstance ();
เนื่องจากข้อ จำกัด ของประเภทการอ้างอิงวัตถุไปยังไวยากรณ์คลาสทั่วไปไม่สามารถนำไปยังหมวดหมู่อื่นได้
คัดลอกรหัสรหัสดังนี้:
คลาส obj1 = int.class;
คลาส <teger> obj2 = int.class;
obj1 = double.class;
//obj2=double.class;
บรรทัดของรหัสนี้ผิดกฎหมาย
คัดลอกรหัสรหัสดังนี้:
คลาส <?
obj = number.class;
obj = double.class;
ดังนั้นวัตถุคลาสที่สร้างขึ้นด้านล่างสามารถชี้ไปที่คลาสใดก็ได้
คัดลอกรหัสรหัสดังนี้:
คลาส <?> obj = int.class;
obj = double.class;
obj = shapes.class;
การใช้งานแปลก ๆ ครั้งสุดท้ายคือเมื่อคุณใช้ไวยากรณ์ทั่วไปนี้เพื่อสร้างวัตถุคลาสพื้นฐานของวัตถุในคลาสคลาสที่คุณมีอยู่ในมือคุณต้องใช้ไวยากรณ์พิเศษต่อไปนี้
คัดลอกรหัสรหัสดังนี้:
รูปร่างระดับสาธารณะ {}
รอบคลาสขยายรูปร่าง {}
คลาส <rand> rclass = round.class;
คลาส <? Super Round> Sclass = rclass.getSuperClass ();
// คลาส <mhapes> sclass = rclass.getsuperclass ();
คุณต้องทราบที่นี่ว่าคุณรู้ว่าชั้นฐานของรอบเป็นรูปร่าง แต่คุณไม่สามารถประกาศคลาส <shapes> ได้โดยตรงคุณต้องใช้คลาสไวยากรณ์พิเศษ <?
การแนะนำเนื้อหาข้างต้นเป็นเนื้อหาทั้งหมดของวิธีการจำแนกประเภทภาษา Java และการวางนัยทั่วไป (คำอธิบายโดยละเอียด)