รู้เบื้องต้นเกี่ยวกับชั้นเรียนภายใน
คลาสที่กำหนดไว้ในคลาสอื่นเรียกว่าชั้นเรียนชั้นใน
ชั้นเรียนภายใน
1.. เพื่อสร้างคลาสภายในของสมาชิกคุณต้องสร้างอินสแตนซ์ของคลาสภายนอกก่อนจากนั้นสร้างวัตถุของคลาสภายในผ่าน. ใหม่
2 .. คุณสามารถเข้าถึงคุณสมบัติและวิธีการทั้งหมดของคลาสภายนอกผ่านชื่อคลาสนี้ของคลาสภายนอก
คลาสสาธารณะ test1 {string name = "asnd"; โมฆะคงที่สาธารณะหลัก (สตริง [] args) {test1 test1 = test1 ใหม่ (); minner ภายใน = test1.new inner (); minner.print (); } void show () {system.out.println ("show"); } คลาสสาธารณะชั้นใน {ชื่อสตริง = "123"; Private Void Print () {show (); System.out.println (ชื่อ); // พิมพ์ 123 System.out.println (test1.this.name); // พิมพ์ asnd}}}}ชั้นเรียนภายในที่ไม่ระบุชื่อ
คลาสที่ไม่มีชื่อจะสร้างวัตถุในขณะที่สร้างคลาส
คุณจะต้องใช้คลาสหนึ่งครั้งเพื่อใช้คลาสภายในที่ไม่ระบุชื่อ
ไฟล์ไฟล์ = ไฟล์ใหม่ ("d: /cc.txt") {@Override บูลีนสาธารณะลบ () {system.out.println ("ไม่ลบ y/n"); สแกนเนอร์อินพุต = ใหม่สแกนเนอร์ (System.in); string str = input.next (); if (str.equals ("y")) {return super.delete (); } system.out.println ("ลบล้มเหลว"); กลับเท็จ; - file.delete (); -วัตถุนิรนาม
วัตถุจะต้องเข้าถึงเพียงครั้งเดียว
เธรดใหม่ () {@Override โมฆะสาธารณะเรียกใช้ () {system.out.println ("เธรดเริ่ม!"); ลอง {thread.sleep (2000); System.out.println ("เธรดสิ้นสุด!"); } catch (exception e) {e.printstacktrace (); } super.run (); } }.เริ่ม();ชั้นในแบบคงที่
1. คลาสภายในแบบคงที่สามารถเข้าถึงวิธีการคงที่และตัวแปรของคลาสภายนอกเท่านั้นและไม่สามารถเข้าถึงไม่คงที่
2. คลาสภายในแบบคงที่สามารถสร้างได้โดยตรงโดยไม่ต้องสร้างการอ้างอิงไปยังคลาสภายนอก
การเข้าถึงตัวแปรภายในชั้นเรียนที่ไม่ระบุชื่อ
การเข้าถึงคลาสภายในตัวแปรท้องถิ่นจะต้องเป็นที่สิ้นสุด หากไม่ได้เพิ่ม JDK1.8 จะถูกเพิ่มโดยค่าเริ่มต้น เมื่อตัวแปรที่ใช้เปลี่ยนไปวิธีการต่อไปนี้สามารถใช้หรือสิ่งต่อไปนี้ฉันสามารถตั้งค่าเป็นแบบคงที่ที่จุดเริ่มต้น
สำหรับ (int i = 0; i <5; i ++) {สุดท้าย int finali = i; เธรดใหม่ () {โมฆะสาธารณะ Run () {system.out.println (finali); - }.เริ่ม(); -ต่อไปนี้เป็นการแนะนำทักษะการใช้งานของชั้นเรียนภายใน
โมฆะคงที่สาธารณะหลัก (สตริง [] args) {lam mlam = new lam (); // วิธีแรกของการใช้งาน mlam.to (Light ใหม่ () {@Override โมฆะสาธารณะ Shin () {System.out.println ("วิธีแรกของ ON");}}); // วิธีที่สองของคลาสการใช้งาน Mylam ใช้แสง {@Override โมฆะสาธารณะ Shin () {System.out.println ("สอง"); }} mlam.to (ใหม่ mylam ()); }} อินเตอร์เฟสไฟ {void shin ();} คลาส lam {โมฆะสาธารณะถึง (Ligh Ligh) {ligh.shin (); System.out.println ("on"); -ขอบคุณสำหรับการอ่านฉันหวังว่ามันจะช่วยคุณได้ ขอบคุณสำหรับการสนับสนุนเว็บไซต์นี้!