[JAVA] Classe anonyme (classe anonyme)

Qu'est-ce qu'une classe anonyme?

Il est utilisé lors de la création d'une classe qui n'est utilisée qu'une seule fois sur place.

Normalement, vous déclarez une classe qui implémente une interface, créez une instance de cette classe et appelez une méthode, mais avec une classe anonyme, vous pouvez déclarer une interface et utiliser une méthode en même temps.

Lorsque vous n'utilisez pas de classe anonyme

Cette fois, j'ai utilisé une interface personnalisée avec une méthode appelée output.

IPrint


public interface IPrint {
	void output();
}

Créez une classe qui implémente l'interface IPrint et décrivez les détails de traitement dans la méthode.

PrintImpl


public class PrintImpl implements IPrint{

	@Override
	public void output() {
		System.out.println("aaa");
	}
}

Appelez-le dans la classe d'exécution.

Main


public class Main {

	public static void main(String[] args) {
		
		IPrint ip = new PrintImpl();
		ip.output();//Sur la console"aaa"Est sortie
	}
}

Lors de l'utilisation d'une classe anonyme

Vous pouvez utiliser les méthodes IPrint dans la classe d'exécution sans créer de classe qui implémente l'interface.

Main


public class Main {

	public static void main(String[] args) {
		
		IPrint ip = new IPrint() {
			@Override
			public void output() {
				System.out.println("aaa");
			}
		};
		ip.output();
	}
}

De plus, le nombre de lignes peut être raccourci avec une expression lambda.

Main


public class Main {

	public static void main(String[] args) {
			
		IPrint ip = () -> System.out.println("xxxx");
		
		ip.output(); // "xxxx"Est sortie
	}
}

Si vous ajoutez une nouvelle méthode qui ne figure pas sur l'interface, elle ne sera pas reçue en tant que variable de type d'interface lors de la création de l'instance.

Main


public class Main3 {

	public static void main(String[] args) {
		
		new IPrint() {
			@Override
			public void output() {
				System.out.println("aaa");
			}
			
			public void output2() {
				System.out.println("bbb");
			}
		}.output2();
	}
}

Recommended Posts

Classe anonyme (classe anonyme)
Classe anonyme Java
Méthode de classe
Classe ObjectMapper
Classe ArrayList
Classe anonyme (visant à introduire l'API de flux)
Classe anonyme (classe anonyme)
Méthode de classe
Classe ObjectMapper
Classe ArrayList
Exemple simple de rappel dans l'exemple de classe anonyme Java Part2
Méthodes de classe Java
Classe et modèle
[Java] Héritage de classe
Classe Java HashMap
À propos de l'héritage de classe.
java (classe abstraite)
[Java] Classe imbriquée
À propos de la classe Java
En parlant de cela, une classe anonyme est apparue.
Méthodes de classe de chaîne
java.lang.IncompatibleClassChangeError: classe d'implémentation
[java] Classe abstraite
[Java] Classe d'objets
Classe locale Java
Classe impl Classe Vo
Chargement de la classe WildFly