Rumah > Java > javaTutorial > Kelas Dalaman Tanpa Nama di Jawa

Kelas Dalaman Tanpa Nama di Jawa

WBOY
Lepaskan: 2024-08-30 15:58:22
asal
492 orang telah melayarinya

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.

  • Kelas
  • Antara Muka

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 */
}
};
Salin selepas log masuk

Contoh Kelas Dalaman Tanpa Nama di Jawa

Diberikan di bawah adalah contoh yang dinyatakan:

Contoh #1

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();      
    } 
} 
Salin selepas log masuk

Output:

Kelas Dalaman Tanpa Nama di Jawa

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.

Contoh #2

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();      
    } 
}
Salin selepas log masuk

Output:

Kelas Dalaman Tanpa Nama di Jawa

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.

Contoh #3

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();      
    } 
} 
Salin selepas log masuk

Output:

Kelas Dalaman Tanpa Nama di Jawa

Contoh #4

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();
        
    } 
}
Salin selepas log masuk

Output:

Kelas Dalaman Tanpa Nama di Jawa

Contoh #5

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."); 
    }      
    }
Salin selepas log masuk

Output:

Kelas Dalaman Tanpa Nama di Jawa

Kesimpulan

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!

Label berkaitan:
sumber:php
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan