Le développement Android de classe imbriquée Java doit être connu
Une classe imbriquée fait référence à une classe définie à l'intérieur d'une autre classe. La classe imbriquée n'existe que pour ses classes environnantes. Il existe quatre types de classes imbriquées : les classes membres statiques, les classes membres non statiques, les classes anonymes et les classes partielles.
-
La classe membre statique est le type de classe imbriquée le plus simple. Il est préférable de le considérer comme une classe normale qui se trouve être définie dans une autre classe. Les classes membres statiques peuvent accéder à tous les membres de la classe englobante, y compris ces variables privées . Les classes membres statiques sont également conformes aux règles d'accessibilité. Si elles sont positionnées comme privées, cela signifie qu'elles ne sont accessibles qu'à l'intérieur de la classe englobante.
public class PhotoListAdapter extends RecyclerView.Adapter<PhotoListAdapter.ImageVH> { static class ImageVH extends RecyclerView.ViewHolder { //代码省略 } }
Copier après la connexion Dans Android, le ViewHolder le plus familier de listview que nous utilisons habituellement est la classe membre statique, généralement en tant que classe auxiliaire publique. Mettez en cache la mise en page dans la vue en tant que variable de cache de Listview.
Classe membre statique privée, utilisée pour représenter les composants de l' objet représenté par la classe environnante.
Le code est le suivant
La différence syntaxique entre les classes membres non statiques et les classes membres statiques est de savoir s'il existe le modificateur static. Bien que leur syntaxe soit similaire, les deux sont très différents. Chaque instance d'une classe membre non statique est implicitement associée à une instance englobante de la classe englobante. Dans une méthode d'instance d'une classe membre non statique, les méthodes sur l'instance englobante peuvent être appelées. indépendamment dans la classe englobante, une instance d’une classe membre non statique ne peut pas être créée sans une instance environnante.
Lorsqu'une instance d'une classe membre non statique est créée, l'association entre elle et l'instance environnante est également établie, et cette association ne peut pas être modifiée ultérieurement. Cette association se produit généralement lorsqu'une méthode d'instance de la classe englobante appelle le constructeur d'une classe membre non statique. Cette association consomme l'espace des instances de classe membre non statiques et augmente le temps nécessaire à la construction. Si la classe membre n'a pas besoin d'accéder à l'instance de classe périphérique, veuillez ajouter le modificateur statique .
public class PhotoListAdapter extends RecyclerView.Adapter<PhotoListAdapter.ImageVH> { class ImageVH extends RecyclerView.ViewHolder { // 真是对外部类的实例持有,在Android开发中很大部分activity中的context的内存泄露因为这个原因。 } }
Copier après la connexionLa classe anonyme est différente des autres unités syntaxiques de JAVA. La classe anonyme n'a pas de nom. Elle n'est pas membre de la classe externe. Elle n'est pas déclarée avec les autres membres. . Déclaré instancié au moment de l'utilisation. Les classes anonymes peuvent apparaître n'importe où dans le code où une expression existe. Ce n'est que si une classe anonyme apparaît dans un environnement non statique qu'elle aura une instance périphérique. Même si elle est déclarée dans un environnement statique, elle ne peut avoir aucun membre statique.
imageView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // 代码省略 } });
Copier après la connexionLes classes locales sont déclarées partout où "les variables locales peuvent être déclarées". Respectez également les règles de portée : 1. Les classes locales ont des noms qui peuvent être réutilisés. 2. Contrairement aux classes anonymes, ce n'est que lorsque la classe locale est définie dans un environnement non statique qu'elle peut avoir des instances périphériques et ne peut pas contenir de membres statiques.
public class mainActivity extends Activity{ private Handler handler = new Handler(){ @Override public void handleMessage(Message msg) { // 此处同样可能引起context持有导致的内存泄露 } }; }
Copier après la connexion
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Le Redmi Note 14 Pro Plus est désormais officiel en tant que successeur direct du Redmi Note 13 Pro Plus de l'année dernière (375 $ sur Amazon). Comme prévu, le Redmi Note 14 Pro Plus est en tête de la série Redmi Note 14 aux côtés du Redmi Note 14 et du Redmi Note 14 Pro. Li

Historiquement, Oppo a actualisé sa série phare « Find X » à la fin de l'hiver ou au début du printemps, à l'exception du Find X original annoncé en juin 2018. À cette fin, les Find X7 et Find X7 Ultra ont à peine plus de six mois. à ce point. H

Java 8 présente l'API Stream, fournissant un moyen puissant et expressif de traiter les collections de données. Cependant, une question courante lors de l'utilisation du flux est: comment se casser ou revenir d'une opération FOREAK? Les boucles traditionnelles permettent une interruption ou un retour précoce, mais la méthode Foreach de Stream ne prend pas directement en charge cette méthode. Cet article expliquera les raisons et explorera des méthodes alternatives pour la mise en œuvre de terminaison prématurée dans les systèmes de traitement de flux. Lire plus approfondie: Améliorations de l'API Java Stream Comprendre le flux Forach La méthode foreach est une opération terminale qui effectue une opération sur chaque élément du flux. Son intention de conception est

Lenovo se prépare à lancer le Legion Y700 2024 le 29 septembre en Chine. Cette nouvelle tablette de jeu Android affrontera la RedMagic Nova, et la société a déjà confirmé presque toutes les spécifications de l'appareil. Maintenant, quelques heures avant le plein

Les capsules sont des figures géométriques tridimensionnelles, composées d'un cylindre et d'un hémisphère aux deux extrémités. Le volume de la capsule peut être calculé en ajoutant le volume du cylindre et le volume de l'hémisphère aux deux extrémités. Ce tutoriel discutera de la façon de calculer le volume d'une capsule donnée en Java en utilisant différentes méthodes. Formule de volume de capsule La formule du volume de la capsule est la suivante: Volume de capsule = volume cylindrique volume de deux hémisphères volume dans, R: Le rayon de l'hémisphère. H: La hauteur du cylindre (à l'exclusion de l'hémisphère). Exemple 1 entrer Rayon = 5 unités Hauteur = 10 unités Sortir Volume = 1570,8 unités cubes expliquer Calculer le volume à l'aide de la formule: Volume = π × r2 × h (4

Spring Boot simplifie la création d'applications Java robustes, évolutives et prêtes à la production, révolutionnant le développement de Java. Son approche "Convention sur la configuration", inhérente à l'écosystème de ressort, minimise la configuration manuelle, allo

Le lancement du très attendu pliable « Special Edition » de Samsung a pris une autre tournure. Ces dernières semaines, les rumeurs concernant le soi-disant Galaxy Z Fold Special Edition sont devenues plutôt silencieuses. Au lieu de cela, l’accent s’est déplacé vers la série Galaxy S25, y compris

Java est un langage de programmation populaire qui peut être appris aussi bien par les développeurs débutants que par les développeurs expérimentés. Ce didacticiel commence par les concepts de base et progresse vers des sujets avancés. Après avoir installé le kit de développement Java, vous pouvez vous entraîner à la programmation en créant un simple programme « Hello, World ! ». Une fois que vous avez compris le code, utilisez l'invite de commande pour compiler et exécuter le programme, et « Hello, World ! » s'affichera sur la console. L'apprentissage de Java commence votre parcours de programmation et, à mesure que votre maîtrise s'approfondit, vous pouvez créer des applications plus complexes.
