Objet anonyme: un objet sans nom.
Objet non anonyme:
ClassName c = new className ();
c.run ();
Objet anonyme:
new className (). run ();
Notes:
1. Lorsque l'objet n'appelle la méthode qu'une seule fois, elle peut être simplifiée en un objet anonyme.
2. Deux objets anonymes ne peuvent pas être le même objet.
3. Généralement, les valeurs d'attribut ne sont pas affectées à des objets anonymes, car ils ne peuvent jamais être obtenus.
4. Une fois exécuté, il sera recyclé directement, en économisant l'espace mémoire.
Exemple de code utilisé par les objets anonymes:
classe publique anony {int a = 1; int b = 2; void run () {System.out.println (a + b);} public static void main (String [] args) {new anony (). a = 10; // L'objet anonyme ne peut pas être réaffecté et l'affectation échoue toujours anony a = new anony (); a.run (); // Créez l'objet de manière anonyme et appelez la méthode}}Résultats en cours:
3
3
Classe intérieure anonyme: la classe intérieure anonyme est une classe intérieure sans nom.
Format:
ClassName object = new className () {
/ * Bloc de code * /
};
Notes:
1. Les classes internes anonymes doivent hériter d'une classe parent ou implémenter une interface.
Exemple de code de classe abstrait: (identique à l'interface)
Classe abstraite anonytest {int a = 1; int b = 2; public abstract void run ();} public class anonyinner {public static void main (string [] args) {anonytest a = new anonytest () {// abstrait class anonymous public void run () {System.out.println (a + b);}}; a.run ();}}Si vous n'utilisez pas de classes intérieures anonymes pour implémenter des méthodes abstraites:
Classe abstraite anonytest {int a = 1; int b = 2; public abstract void run ();} class anonydemo étend anonytest {public void run () {System.out.println (a + b);}} public class anonyinner {public static void main (String [] args) {anonytest a = new anonydemo (); // augmente l'objet a.run ();}}Résultats en cours:
3