Table des matières:
Vidéo: Créez votre propre classe dans java 2024
Voici de grandes nouvelles! Vous pouvez définir une classe dans une autre classe! C'est pratique pour les développeurs d'applications Android. La plupart des classes ne vivent pas dans une autre classe, et la plupart des classes ne contiennent pas d'autres classes. Mais quand l'idée derrière une classe crie faire partie d'une autre classe, n'hésitez pas à créer une classe dans une classe.
Classes internes nommées
Dans ce code, la classe MyActivity contient sa propre classe MyListener.
package com. allmycode. des échantillons; importer Android. app. Activité; importer Android. os. Paquet; importer Android. vue. Vue; importer Android. vue. Vue. OnClickListener; importer Android. widget. Bouton; Classe publique MyActivity extends Activity {Button button; @Override public void onCreate (Bundle savedInstanceState) {super. onCreate (savedInstanceState); setContentView (R disposition.principale); button = ((Bouton) findViewById (R, id, bouton1)); bouton. setOnClickListener (new MyListener () );} class MyListener implémente OnClickListener {@Override public void onClick (Voir arg0) {button. setBackgroundColor (android. graphics, Color.GRY);}}}
La classe MyListener est une classe interne . Une classe interne ressemble beaucoup à n'importe quelle autre classe. Mais dans le code d'une classe interne, vous pouvez vous référer aux champs de la classe englobante. Par exemple, la méthode onClick dans MyListener utilise le bouton name, et le bouton est défini dans la classe MyActivity qui l'entoure.
Classes internes anonymes
Notez que le code ci-dessus n'utilise la classe MyListener qu'une seule fois. (La seule utilisation est dans un appel au bouton setOnClickListener.) Alors, avez-vous vraiment besoin d'un nom pour quelque chose qui n'est utilisé qu'une seule fois? Non, vous ne le faites pas. Vous pouvez remplacer la définition complète de la classe interne dans l'appel au bouton. setOnClickListener. Lorsque vous faites cela, vous avez une classe interne anonyme . Le code suivant vous montre comment cela fonctionne.
package com. allmycode. des échantillons; importer Android. app. Activité; importer Android. os. Paquet; importer Android. vue. Vue; importer Android. vue. Vue. OnClickListener; importer Android. widget. Bouton; Classe publique MyActivity extends Activity {Button button; @Override public void onCreate (Bundle savedInstanceState) {super. onCreate (savedInstanceState); setContentView (R disposition.principale); button = ((Bouton) findViewById (R, id, bouton1)); bouton. setOnClickListener (new OnClickListener () { @Override public void onClick (Voir arg0) {bouton setBackgroundColor (graphiques android, Color.GRY);} } );}} > Les classes internes sont utiles pour des choses comme les gestionnaires d'événements, tels que la méthode onClick.La chose la plus difficile à propos d'une classe interne anonyme est de garder une trace des parenthèses, des accolades et de l'indentation. Voici donc quelques conseils: Commencez par écrire du code sans classes internes. Plus tard, lorsque vous vous ennuierez avec les classes Java ordinaires, expérimentez en transformant certaines de vos classes ordinaires en classes internes.