ในส่วนก่อนหน้านี้ เราได้เรียนรู้เกี่ยวกับคลาสภายใน ในส่วนนี้ เราจะเรียนรู้เกี่ยวกับคลาสที่ไม่ระบุชื่อ แล้วคลาสที่ไม่เปิดเผยตัวตนคืออะไร? ตามชื่อที่แนะนำ คลาสที่ไม่ระบุตัวตน คือคลาสที่ไม่สามารถมีชื่อได้ และไม่สามารถอ้างอิงได้และสามารถประกาศได้ด้วยคำสั่งใหม่เมื่อสร้างขึ้นเท่านั้น
หากต้องการใช้คลาสภายในที่ไม่ระบุชื่อ เราจะต้องสืบทอดคลาสพาเรนต์หรือใช้อินเทอร์เฟซ
สิ่งที่ควรทราบคือ:
1) ไม่สามารถกำหนดตัวสร้างในคลาสภายในที่ไม่ระบุชื่อได้
2) ไม่สามารถมีตัวแปรสมาชิกแบบคงที่และวิธีการแบบคงที่ในคลาสภายในที่ไม่ระบุชื่อ
3) คลาสภายในแบบไม่ระบุชื่อคือคลาสภายในเฉพาะที่ ดังนั้นข้อจำกัดทั้งหมดเกี่ยวกับคลาสภายในเฉพาะจะมีผลกับคลาสภายในที่ไม่ระบุตัวตนด้วย
รูปแบบไวยากรณ์ของคลาสที่ไม่ระบุชื่อมีดังนี้:
classouterClass{//กำหนดคลาสที่ไม่ระบุชื่อ object1=newType(parameterList){//รหัสคลาสที่ไม่ระบุชื่อ};}
หมายเหตุ: เนื่องจากคลาสที่ไม่ระบุชื่อถูกกำหนดไว้ในรูปแบบของนิพจน์ จึงลงท้ายด้วย เครื่องหมายอัฒภาค ;
ตัวอย่างเช่น:
classDotcpp{publicvoiddisplay(){System.out.println (ภายในคลาส Dotcpp);}}classAnonymousDemo{publicvoidcreateClass(){//คลาสที่ไม่ระบุตัวตนที่สร้างขึ้นจะสืบทอดคลาส Dotcpp Dotcppd1=newDotcpp(){publicvoiddisplay(){System.out. println (ภายในคลาสที่ไม่ระบุชื่อ);}}; d1.display ();}} classMain {publicstaticvoidmain (String [] args) {AnonymousDemoan = newAnonymousDemo (); an.createClass ();}}
ผลการวิ่งมีดังนี้:
ภายในชั้นเรียนที่ไม่ระบุชื่อ
ตัวอย่างเช่น:
interfaceDotcpp{publicvoiddisplay();}classAnonymousDemo{publicvoidcreateClass(){//คลาสที่ไม่ระบุชื่อที่สร้างขึ้นจะใช้อินเทอร์เฟซ Dotcpp Dotcppd1=newDotcpp(){publicvoiddisplay(){System.out.println (ภายในคลาสที่ไม่ระบุชื่อ);}};d1 จอแสดงผล ();}} classMain {publicstaticvoidmain (String [] args) {AnonymousDemoan = newAnonymousDemo (); an.createClass ();}}
ผลการวิ่งมีดังนี้:
ภายในชั้นเรียนที่ไม่ระบุชื่อ
โอเค ทุกคนสามารถทดลองบนคอมพิวเตอร์และแยกแยะและซึมซับเนื้อหาของส่วนนี้ได้