ทุกคนรู้ว่า Java เป็นภาษาการเขียนโปรแกรมเชิงวัตถุ ในโลกชวาทุกอย่างเป็นวัตถุ คุณเป็นตัวแทนของวัตถุใน Java นั้นได้อย่างไร? ระดับ
เรารู้ว่าวัตถุใน Java เป็นคลาสย่อยของคลาสวัตถุดังนั้นวันนี้เราจะศึกษาการใช้ชั้นเรียนใน Java ด้วยกัน
ถามคำถามเล็ก ๆ : เป็นวัตถุชั้นเรียนหรือไม่? คลาสของใครคือคลาส? คำตอบคือ: คลาสเป็นวัตถุวัตถุที่แข็งแกร่งของคลาส java.lang.class
แพ็คเกจ com.edu.hpu;
การทดสอบระดับสาธารณะ {โมฆะคงที่สาธารณะหลัก (สตริง [] args) {// อินสแตนซ์วัตถุโดย foo foo ใหม่ = new foo (); // รับอินสแตนซ์ของคลาสคลาสโดยการสร้างอินสแตนซ์เมธอด getClass () ของคลาสวัตถุ C1 = foo.getClass (); // คลาสใด ๆ มีคลาสตัวแปรคงที่โดยนัยคลาสคลาส C2 = foo.class; // C1 และ C2 แสดงประเภทคลาสของคลาส FOO (ประเภทคลาส) System.out.println (C1 == C2); คลาส C3 = null; ลอง {// วิธีที่สามในการรับคลาสคลาสของคลาส C3 = class.forName ("com.edu.hpu.foo"); } catch (classnotFoundException e) {e.printStackTrace (); } system.out.println (c1 == c3); ลอง {// สร้างวัตถุอินสแตนซ์ของคลาสผ่านคลาส Type foo c4 = (foo) c1.newinstance (); c4.start (); } catch (InstantiationException E) {E.printStackTrace (); } catch (unglegalAccessException e) {e.printStackTrace (); }}} คลาส foo {public void start () {system.out.println ("foo class"); -ผ่านรหัสข้างต้นคุณมีความเข้าใจในชั้นเรียนที่ลึกซึ้งยิ่งขึ้นหรือไม่? เราสามารถสร้างวัตถุอินสแตนซ์คลาสผ่านคำหลักใหม่และเรายังสามารถสร้างวัตถุอินสแตนซ์คลาสผ่านประเภทคลาส มีสามรูปแบบของวิธีการข้างต้นเพื่อให้ได้คลาสคลาสคลาส พวกเขาได้รับประเภทคลาสเดียวเท่านั้นดังนั้น C1 == C2 == C3: จริง
หลังจากการแนะนำสั้น ๆ ข้างต้นคุณมีความเข้าใจที่ลึกซึ้งยิ่งขึ้นของชั้นเรียนใน Java หรือไม่? มาใช้ตัวอย่างเล็ก ๆ เพื่อแนะนำการใช้ประเภทคลาสและอินสแตนซ์คลาสที่แท้จริง
สำนักงานชั้นเรียน {โมฆะคงที่สาธารณะหลัก (สตริง [] args) {ถ้า ("word" .equals (args [0])) {word w = new word (); W.Start (); } if ("excel" .equals (args [0])) {excel e = new excel (); E.Start (); -มาดูรหัสด้านบนกันเถอะ เมื่อเรารวบรวมมันจะผ่านได้ตามปกติหรือไม่? ที่นี่เราต้องพูดคุยเกี่ยวกับการรวบรวมและการดำเนินการ: คลาสที่โหลดในเวลาคอมไพล์เป็นคลาสโหลดแบบคงที่ คลาสที่โหลดในเวลาทำงานเป็นคลาสการโหลดแบบไดนามิก class.forname ("ชื่อเต็มของคลาส L"); ไม่เพียงแสดงถึงประเภทคลาสเท่านั้น แต่ยังแสดงถึงคลาสการโหลดแบบไดนามิก ในตัวอย่างข้างต้นเราอาจไม่จำเป็นต้องใช้คำและ Excel แต่เมื่อเรารวบรวมหากไม่มีคำและ Excel จะไม่มีข้อผิดพลาดเกิดขึ้น ดังนั้นต่อไปเราใช้ตรรกะข้างต้นโดยการโหลดประเภทคลาสแบบไดนามิก
Class Office {โมฆะสาธารณะคงที่หลัก (สตริง [] args) {ลอง {class c = class.forName (args [0]); OA ที่เป็นไปได้ = (เป็นไปได้) C.NewInstance (); oa.write (); } catch (exception e) {e.printstacktrace ();}}} อินเทอร์เฟซที่เป็นไปได้ {โมฆะสาธารณะเขียน ();} คำคลาสใช้งานได้อย่างเป็นทางการ {โมฆะสาธารณะเขียน () {system.out.println ("คำ ... เริ่ม ... "); }} คลาส Excel ดำเนินการอย่างเป็นทางการ {โมฆะสาธารณะเขียน () {system.out.println ("excel..write .. "); -ด้วยวิธีนี้เราสามารถเพิ่มคลาสแบบไดนามิกได้ตามต้องการเพื่ออำนวยความสะดวกในการขยายฟังก์ชั่นของแอปพลิเคชันของเรา