[Java] Classe imbriquée

Classe imbriquée

classe de membre statique

public class MyClass{...}
class MyHelper{...}
//Définition de MyHelper sous le bloc de classe
public class MyClass {
  //Définition de la classe de membre statique
  //Les membres ne peuvent pas être vus de l'extérieur de Ma classe
  private static class MyHelper {
    public void show() {
      System.out.println("Nested class is running!");
    }
  }
  public void run() {
    //MyHelper peut être appelé à l'intérieur du boîtier
    var helper = new MyHelper();
    helper.show();
  }
}
public class NestBasic {
  public static void main(String[] args) {
    var c = new MyClass();
    c.run();
    //MyHelpe est invisible de l'extérieur de MyClass
    // var h = new MyClass.MyHelper(); //Erreur!
  }
}

Classe membre non statique (= classe interne)

class MyClass {
  private String str1 = "Instance englobante";
  private static String str2 = "Classe englobante";

  private class MyHelper {
    private String str1 = "Instance imbriquée";
    private static final String str2 = "Classe imbriquée";

    public void show() {
      //La classe interne a une référence à l'objet englobant
      //MyClass.Accessible avec ceci
      System.out.println(MyClass.this.str1); //Instance englobante
      System.out.println(MyClass.str2); //Classe englobante
    }
  }

  public void run() {
    //Instance de classe interne créée en englobant la méthode d'instance de classe
    var helper = new MyHelper();
    helper.show();
    //Accéder à la classe interne à partir de l'objet englobant
    System.out.println(helper.str1); //Instance imbriquée
    System.out.println(MyHelper.str2); //Classe imbriquée
  }
}

public class NestedAccess {
  public static void main(String[] args) {
    var c = new MyClass();
    c.run();
  }
}

Exemple de classe membre non statique (classe interne)

java:java.util.AbstractList.java


package java.util;
import java.util.function.Consumer;
public abstract class AbstractList<E> extends AbstractCollection<E> implements List<E> {
//...Omission

    /*Iterators
Pas besoin de montrer l'implémentation interne de la classe Itr
Ce serait bien si le type Iterators, qui est la source d'implémentation, pouvait être vu de l'extérieur.
La valeur de retour de la méthode iterator est le type Iterator
    */
    public Iterator<E> iterator() {
        return new Itr();
    }
//...Omission

    /*Classe intérieure
Implémentation d'un itérateur qui accède au champ privé dans la liste et accède aux éléments subordonnés dans l'ordre
Iterator est défini séparément en tant que classe d'implémentation Iterator
    */
    private class Itr implements Iterator<E> {
//...Omission
    }
//...Omission
}

Classe anonyme (classe anonyme)

//Inscription des écouteurs d'événements
btn.setOnClickListener(
  //Classe anonyme(Écouteur d'événements)Définition
  new View.OnClickListener(){
    //btn Cliquez pour afficher l'heure actuelle en txt
    @Override
    public void onClick(View view){
      TextView txt = findViewById(R.id.txtResult);
      txt.setText(LocalDateTime.now().toString());
    }
  }
);

Classe locale

Recommended Posts

[Java] Classe imbriquée
[Java] Héritage de classe
classe Scanner java
Classe Java HashMap
Classe anonyme Java
À propos de la classe Java
[java] Classe abstraite
[Java] Classe d'objets
Classe locale Java
À propos de la division de classe (Java)
À propos de la classe Java StringBuilder
[Java] À propos de la classe Singleton
Examen de la classe interne Java
Champ de type de classe Java
Programmation Java (méthode de classe)
À propos de la classe Java String
Classe imbriquée (pour moi)
Programmation Java (structure de classe)
À propos de la classe abstraite de Java
[Java] Référence de classe de wrapper Integer
Sous-chaîne de mémo Java (classe standard)
Astuces Java - Modificateurs de classe StaticUtility
Sous-chaîne de classe Java inflexible String
Longueur du mémo Java (classe standard)
[Implémentation] Notes de classe de processus java
À propos des types de chargeur de classe Java
Comment utiliser la classe Java
[Java] Comparateur de la classe Collection
Définition et instanciation de classe Java
Java
Mémo d'apprentissage Java (classe abstraite)
Résumé de la classe Java Math
[Java] Qu'est-ce que l'héritage de classe?
Méthode de classe variable de classe Java
Java
[Notions de base Java] Qu'est-ce que la classe?
Créer une classe immuable avec JAVA
Appeler la classe scellée de Kotlin depuis Java
[Java] Syntaxe orientée objet - Méthode / argument de classe
Diverses méthodes de la classe Java String
[Java] Mémo pour nommer les noms de classe
Comment désassembler un fichier de classe Java
Classe Kotlin à envoyer aux développeurs Java
Classe StringBuffer et StringBuilder en Java
Comment décompiler un fichier de classe Java
java (utilisez le type de classe pour le champ)
Code source Java lecture de la classe java.lang.Math
[Java] Classe de modèle de bouton par Graphics
Comment utiliser les méthodes de classe [Java]
[Java] Comment utiliser la classe Math
Apprendre Java (0)
Étudier Java ―― 3
[Java] tableau
Qu'est-ce qu'une classe en langage Java (3 /?)
Java protégé
[Java] Annotation
Module [Java]
Tableau Java
Étudier Java ―― 9
Java scratch scratch