În acest tutorial, veți afla despre cursuri anonime în Java cu ajutorul exemplelor.
În Java, o clasă poate conține o altă clasă cunoscută sub numele de clasă imbricată. Este posibil să creați o clasă imbricată fără a da niciun nume.
O clasă imbricată care nu are niciun nume este cunoscută ca o clasă anonimă.
O clasă anonimă trebuie definită în interiorul altei clase. Prin urmare, este cunoscută și ca o clasă interioară anonimă. Sintaxa sa este:
class outerClass ( // defining anonymous class object1 = new Type(parameterList) ( // body of the anonymous class ); )
Clasele anonime extind de obicei subclasele sau implementează interfețe.
Aici, Type poate fi
- o superclasă pe care o clasă anonimă o extinde
- o interfață pe care o clasă anonimă o implementează
Codul de mai sus creează un obiect, object1
o clasă anonimă în timpul rulării.
Notă: Clasele anonime sunt definite în interiorul unei expresii. Deci, punctul și virgula este folosit la sfârșitul claselor anonime pentru a indica sfârșitul expresiei.
Exemplul 1: Clasa anonimă Extinderea unei clase
class Polygon ( public void display() ( System.out.println("Inside the Polygon class"); ) ) class AnonymousDemo ( public void createClass() ( // creation of anonymous class extending class Polygon Polygon p1 = new Polygon() ( public void display() ( System.out.println("Inside an anonymous class."); ) ); p1.display(); ) ) class Main ( public static void main(String() args) ( AnonymousDemo an = new AnonymousDemo(); an.createClass(); ) )
Ieșire
În interiorul unei clase anonime.
În exemplul de mai sus, am creat o clasă Poligon. Are o singură metodă display()
.
Apoi am creat o clasă anonimă care extinde clasa Poligon și suprascrie display()
metoda.
Când rulăm programul, se creează un obiect p1 al clasei anonime. Obiectul apelează apoi display()
metoda clasei anonime.
Exemplul 2: Clasa anonimă care implementează o interfață
interface Polygon ( public void display(); ) class AnonymousDemo ( public void createClass() ( // anonymous class implementing interface Polygon p1 = new Polygon() ( public void display() ( System.out.println("Inside an anonymous class."); ) ); p1.display(); ) ) class Main ( public static void main(String() args) ( AnonymousDemo an = new AnonymousDemo(); an.createClass(); ) )
Ieșire
În interiorul unei clase anonime.
În exemplul de mai sus, am creat o clasă anonimă care implementează Polygon
interfața.
Avantajele claselor anonime
În clasele anonime, obiectele sunt create ori de câte ori sunt necesare. Adică, obiectele sunt create pentru a efectua anumite sarcini specifice. De exemplu,
Object = new Example() ( public void display() ( System.out.println("Anonymous class overrides the method display()."); ) );
Aici, un obiect al clasei anonime este creat dinamic atunci când trebuie să suprascrieți display()
metoda.
Clasele anonime ne ajută, de asemenea, să facem codul nostru concis.