Pengantar kelas internal
Kelas yang didefinisikan di kelas lain disebut kelas dalam
Kelas internal anggota
1..New untuk membuat kelas internal anggota, Anda harus terlebih dahulu membuat instance dari kelas eksternal, dan kemudian membuat objek kelas internal melalui .new
2.. ini Anda dapat mengakses semua properti dan metode kelas eksternal melalui nama kelas. Ini dari kelas eksternal.
test kelas publik1 {string name = "asnd"; public static void main (string [] args) {test1 test1 = new test1 (); Bagian dalam minner = test1.new dalam (); minner.print (); } void show () {System.out.println ("show"); } kelas publik dalam {string name = "123"; private void print () {show (); System.out.println (name); // cetak 123 System.out.println (test1.this.name); // cetak asnd}}}Kelas internal anonim
Kelas tanpa nama juga akan membuat objek saat membuat kelas.
Anda hanya perlu menggunakan kelas sekali untuk menggunakan kelas internal anonim
File file = file baru ("d: /cc.txt") {@Override public boolean delete () {System.out.println ("Jangan hapus y/n"); Input Pemindai = Pemindai Baru (System.in); String str = input.next (); if (str.equals ("y")) {return super.delete (); } System.out.println ("Hapus Gagal"); mengembalikan false; }}; file.delete (); }Objek anonim
Objek hanya perlu diakses sekali.
utas baru () {@Override public void run () {System.out.println ("Thread Start!"); coba {thread.sleep (2000); System.out.println ("Thread End!"); } catch (Exception e) {E.PrintStackTrace (); } super.run (); } }.awal();Kelas Dalam Statis
1. Kelas dalam statis hanya dapat mengakses metode dan variabel statis kelas eksternal, dan tidak dapat mengakses non-statis.
2. Kelas dalam statis dapat dibuat secara langsung tanpa membuat referensi ke kelas eksternal.
Kelas internal anonim akses variabel lokal
Variabel lokal akses kelas internal harus final. Jika tidak ditambahkan, JDK1.8 akan ditambahkan secara default. Ketika variabel yang digunakan diubah, metode berikut dapat digunakan, atau berikut ini saya dapat ditetapkan sebagai statis di awal.
untuk (int i = 0; i <5; i ++) {final int final = i; utas baru () {public void run () {System.out.println (final); }; }.awal(); }Berikut ini adalah pengantar keterampilan implementasi kelas internal
public static void main (string [] args) {lam mlam = new lam (); // Metode pertama implementasi mlam.to (cahaya baru () {@Override public void shin () {System.out.println ("Metode pertama ON");}}); // Metode kedua kelas implementasi Mylam mengimplementasikan cahaya {@override public void shin () {System.out.println ("kedua"); }} mlam.to (mylam baru ()); }} Lampu antarmuka {void shin ();} class lam {public void to (ligh ligh) {ligh.shin (); System.out.println ("on"); }}Terima kasih telah membaca, saya harap ini dapat membantu Anda. Terima kasih atas dukungan Anda untuk situs ini!