Kelas Dalaman Tanpa Nama di Java ialah kelas dalam atau kelas bersarang. Kelas dalam ialah kelas yang terdapat di dalam kelas luar. Jadi kelas dalaman tanpa nama ialah kelas dalaman yang tidak mempunyai nama. Ia sama ada subkelas kelas atau pelaksanaan antara muka. Jadi jika kita perlu mengatasi kelas atau kaedah antara muka, kita boleh menggunakan kelas dalaman tanpa nama. Dalam kes kelas dalam tanpa nama, pendakap kerinting diikuti oleh koma bertitik.
Mulakan Kursus Pembangunan Perisian Percuma Anda
Pembangunan web, bahasa pengaturcaraan, ujian perisian & lain-lain
Terdapat dua cara untuk mencipta kelas dalaman tanpa nama.
Sintaks:
Di bawah ialah sintaks, di mana kelas boleh menjadi kelas abstrak atau kelas konkrit atau antara muka.
class t = new class() { // class variables and methods members public void class_method() { /* some code of the class_method */ } };
Diberikan di bawah adalah contoh yang dinyatakan:
Contoh di mana kami mencipta antara muka dan kelas mudah yang melaksanakan antara muka itu.
Kod:
package p1; interface Emp { int eid = 2101; void geteid(); } // Implclass implement an Emp Interface and provide the defination for geteid() method class ImplClass implements Emp { @Override public void geteid() { // display the eid System.out.print("Employee id is "+eid); } } class Demo { public static void main( String[] arg ) { // create object of Implclass which implements Emp interface ImplClass ob=new ImplClass(); // call geteid() method which implemented by Implclass ob.geteid(); } }
Output:
Seperti dalam kod di atas, antara muka Emp dicipta dengan kaedah geteid() dan eid=2101. ImplClass melaksanakan Antara Muka Emp dan menyediakan definisi untuk kaedah geteid(). Tidak perlu menulis kelas ImplClass yang berasingan; sebaliknya, ia boleh digunakan sebagai kelas dalaman tanpa nama.
Di sini kami menulis semula kod java di atas untuk melihat kelas dalaman berfungsi. Kelas ImplClass boleh diakses oleh kelas lain dalam aplikasi. Walau bagaimanapun, kefungsian kelas ImplClass tidak diperlukan oleh kelas lain dalam aplikasi. Oleh itu kita tidak perlu menentukan kelas luar. Di samping itu, contoh kelas ini digunakan sekali sahaja. Oleh itu, dengan bantuan kelas dalaman tanpa nama, kefungsian kelas ImplClass boleh dilaksanakan. Dalam contoh di bawah, kami mencipta objek kelas secara langsung dengan melaksanakan Empinterfece.
Kod:
package p1; interface Emp { int eid = 2101; void geteid(); } class Demo { public static void main( String[] arg ) { // Implclass is hidden inner class implement an Emp Interface // Implclass class name is not created but an object is creating below Emp ob = new Emp() { @Override public void geteid() { // display the eid System.out.print("Employee id is "+eid); } }; // call geteid() method which implemented by Implclass ob.geteid(); } }
Output:
Seperti dalam kod di atas, objek Emp tidak dibuat; secara tersirat, objek kelas ImplClass(mungkin bukan nama yang sama) dicipta. Ambil perhatian bahawa kelas dalam tidak mempunyai nama, jadi pengkompil memutuskan nama dan menciptanya, melaksanakan antara muka Emp.
Kod Java untuk mencipta kelas Dalaman tanpa nama yang memanjangkan kelas.
Kod:
package p1; class Emp { void dispMesg() { System.out.println("This message is from main class"); } } class Demo { public static void main( String[] arg ) { // Anonymous hidden inner class extends an Emp class // Anonymous class name is not created but an object is creating below Emp ob = new Emp() { @Override // override dispMesg() method in child Anonymous inner class public void dispMesg() { System.out.print("This message is from child class"); } }; // call geteid() method which implemented by Implclass ob.dispMesg(); } }
Output:
Kod Java untuk mencipta kelas Dalam tanpa nama yang memanjangkan kelas abstrak.
Kod:
package p1; abstract class Emp { void dispMesg() { System.out.println("This message is from main class"); } abstract void abstrct_method(); } class Demo { public static void main( String[] arg ) { // Anonymous hidden inner class extends an Emp abstract class // Anonymous class name is not created but an object is creating below Emp ob = new Emp() { @Override public void dispMesg() { System.out.println("This message is from child class"); } @Override void abstrct_method() { System.out.println("Abstract Method"); } }; ob.dispMesg(); ob.abstrct_method(); } }
Output:
Kod Java untuk mencipta kelas Dalam tanpa nama yang mentakrifkan dalam pembina atau hujah kaedah di mana kami akan menggunakan kelas Benang yang dipratentukan dan antara muka boleh jalan untuk mencipta dan menjalankan utas.
Kod:
package p1; class Demo { public static void main( String[] arg ) { // Anonymous hidden inner class extends an Emp class // Anonymous class define constructor argument Thread obt = new Thread(new Runnable() { @Override public void run() { System.out.println("Runing child Thread."); } }); System.out.println("Runing main Thread."); obt.start(); System.out.println("Runing main Thread."); } }
Output:
Kelas dalaman tanpa nama ialah kelas dalaman yang tidak mempunyai nama kelas. Terdapat pelbagai cara untuk mencipta kelas dalaman tanpa nama, seperti melanjutkan kelas konkrit, melanjutkan kelas abstrak dan melaksanakan antara muka.
Atas ialah kandungan terperinci Kelas Dalaman Tanpa Nama di Jawa. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!