Melalui penelitian sebelumnya, kita telah mengetahui bahwa sebuah kelas dapat memiliki dua anggota penting: variabel anggota dan metode . Faktanya, sebuah kelas juga memiliki satu jenis anggota: kelas dalam. Ketika suatu kelas mendefinisikan kelas lain, kita menyebut kelas tersebut sebagai kelas dalam , dan kelas yang berisi kelas dalam disebut kelas luar dari kelas dalam.
1) Variabel anggota kelas luar dari kelas dalam masih valid di kelas dalam, dan metode di kelas dalam juga dapat memanggil metode di kelas luar.
2) Variabel kelas dan metode kelas tidak dapat dideklarasikan di badan kelas kelas dalam. Di badan kelas kelas luar, kelas dalam dapat digunakan untuk mendeklarasikan objek sebagai anggota kelas luar.
3) Kelas dalam hanya dapat digunakan oleh kelas terluarnya yang bersarang. Kelas lain tidak dapat menggunakan kelas dalam dari kelas tertentu untuk mendeklarasikan objek.
Karena variabel anggota kelas luar dari kelas dalam valid di kelas dalam, interaksi antara kelas dalam dan kelas luar sangat mudah.
Misalnya:
classRedCowForm{staticStringformName;RedCowcow;//Objek deklarasi kelas internal RedCowForm(){}RedCowForm(Strings){cow=newRedCow(88,66,2000);formName=s;}publicvoidshowCowMess(){cow.speak();}classRedCow {//Deklarasi kelas dalam StringcowName=calf;intheight,weight,price;RedCow(inth,intw,intp){height=h;weight=w;price=p;}voidspeak(){System.out.println( Saya +cowName+, tinggi+tinggi+cm, berat+berat+kg, tinggal di +formName);}}}publicclassMain{publicstaticvoidmain(String[]args){RedCowFormform=newRedCowForm(dotcpp farm);form.showCowMess(); sapi.bicara();}}
Hasil yang berjalan adalah sebagai berikut:
Saya seekor anak sapi, tinggi saya 88cm dan berat 66kg. Saya tinggal di peternakan dotcpp.
Catatan : Nama file bytecode kelas internal yang dihasilkan oleh kompiler Java berbeda dengan nama kelas biasa. Format nama file bytecode yang sesuai dengan kelas internal adalah " nama kelas tertanam $ nama kelas internal ". Misalnya: nama file bytecode kelas internal pada contoh di atas haruslah RedCowForm$RedCow.class.
Kelas dalam dapat dimodifikasi sebagai kelas dalam statis. Kelas dalam statis adalah tipe data statis di kelas yang tertanam. Program dapat menggunakan kelas dalam statis di kelas lain untuk membuat objek. Namun, kelas dalam statis tidak dapat beroperasi di kelas dalam yang tertanam.
Oke, semua orang bisa bereksperimen di komputer dan mencerna serta menyerap konten bagian ini.