Maison  >  Article  >  Java  >  Classe interne en Java

Classe interne en Java

WBOY
WBOYoriginal
2024-08-30 15:56:59969parcourir

Une classe interne dans un programme Java n'est rien d'autre que la classe qui est déclarée et utilisée dans une classe déjà fonctionnelle pour utiliser toutes les fonctions et l'accès des membres à la classe externe. Ceci est généralement utilisé lorsque le modèle de codage du programme doit être plus organisé tout en réduisant la longueur du code. Il existe trois types de classes internes : la classe interne membre, la classe interne anonyme et la classe interne locale. Les principaux facteurs considérés comme les avantages de l'utilisation de la classe interne dans un extrait de programme Java sont que la classe interne permet au code d'être plus optimisé et organisé, augmente la lisibilité et la maintenance pour ce type de classe est assez faible.

Types de classe interne en Java

La classe interne en Java correspond essentiellement aux classes qui ne sont pas statiques et qui sont déclarées dans une autre classe. La classe interne est donc membre de la classe externe. Il existe 3 types de classes internes en Java :

Commencez votre cours de développement de logiciels libres

Développement Web, langages de programmation, tests de logiciels et autres

  • Membre, classe intérieure
  • Classes intérieures locales
  • Classes internes anonymes

Veuillez noter que la classe interne est un type de classe imbriquée qui n'est pas statique. Discutons un par un des différents types de classes internes en Java.

1. Classe intérieure des membres

Dans ce cas, il vous suffit de déclarer une classe à l'intérieur de sa classe externe. Mais la classe ne doit pas être à l’intérieur de la méthode de la classe externe. Il doit être défini en dehors de la méthode de la classe externe. La classe interne doit être un type non statique. Un objet d'un type classe interne peut accéder à la variable de la classe externe.

2. Classes intérieures locales

Dans ce cas, il suffit également de déclarer une classe à l'intérieur de sa classe externe. Mais la classe doit être à l’intérieur de la méthode de la classe externe. Il doit être défini dans la méthode de la classe externe. La classe interne doit être un type non statique. L'objet du type classe interne peut accéder à la variable de la classe externe. Comme cette classe est déclarée dans une méthode de la classe externe, son accès est également restreint, à l'instar des variables locales. Si vous avez besoin d’invoquer la fonction de la classe Inner, vous devez l’instancier à l’intérieur de la fonction.

Points à noter pour la classe intérieure locale :

  • Le spécificateur de variable locale ne peut pas être privé, public ou protégé.
  • On ne peut pas invoquer la classe interne Local en dehors de la fonction.
  • Jusqu'à la version 1.7 du JDK, les variables locales non finales ne sont pas accessibles par la classe interne locale. Mais, une variable locale non finale dans la classe interne locale est accessible depuis la version 1.8 du JDK.

3. Classes intérieures anonymes

Anonyme, comme son nom l'indique, est un appel sans nom. Mais comment est-ce possible ? En fait, c'est un type de classe interne où nous effectuons simultanément la déclaration et l'instanciation (moyens, création d'objet). Chaque fois que vous souhaitez remplacer une méthode d'une classe, vous devrez peut-être utiliser une classe interne anonyme. Comme une classe interne anonyme n’a pas de nom, nous ne pouvons pas créer de constructeur de classe interne anonyme. Notez également que vous ne pouvez accéder aux classes internes anonymes qu'au moment de sa définition.

Les classes internes anonymes peuvent être créées de deux manières.

  • En tant que sous-classe d'un type particulier.
  • En tant qu'implémenteur de l'interface particulière.

Exemples de classe interne en Java

Ci-dessous, nous discuterons de quelques exemples de code de la classe interne Java :

Exemple n°1 : Membre, classe interne

Dans cet exemple, nous montrerons un exemple de classe interne d’un membre. Dans cet exemple simple où nous déclarons une classe à l’intérieur d’une classe externe. À l'intérieur de « OuterClass », nous avons une donnée membre privée appelée « num1 » et une classe interne « InnerClass ». On peut accéder à la variable privée « num1 » des appels externes à l'intérieur de la classe interne par un objet de type « InnerClass ». De cette façon, nous profitons de l'utilisation de la classe interne où un membre privé des appels externes est accessible par une méthode de classe interne.

Code :

class OuterClass{
private int num1=36;
class InnerClass{
void shw(){
System.out.println("Member Inner Class");
}
}
}
public class DemoOfMemberInnerClass{
public static void main(String args[]){
OuterClass oc=new OuterClass();
OuterClass.InnerClass ic=oc.new InnerClass();
ic.shw();
}
}

Sortie :

Classe interne en Java

Exemple n°2 : Classe interne anonyme

Dans cet exemple, nous allons démontrer un exemple de la classe interne Local. Ici, notre objectif principal est de remplacer la fonctionnalité d’une méthode de la classe externe. Comme son nom l'indique, le nom de la classe n'est explicitement pas connu et est donc appelé classe interne anonyme. Ici, la déclaration et l'instanciation de la classe interne sont effectuées à un moment donné, et c'est pourquoi on l'appelle classe interne anonyme.

Code :

abstract class Cat{
abstract void drink();
}
public class AnonymousInnerClassDemo{
public static void main(String args[]){
Cat ct=new Cat(){ //anonymous inner class
void drink(){
System.out.println("kitty loves milk");
}
};
ct.drink();
}
}

Sortie :

Classe interne en Java

Example #3: Method Local Inner Class

In this example, we will demonstrate an example of a method local inner class. In this simple example where we declare a class inside the method “display()” of the outer class “OuterClassDemo”. After that, we can access the method by an object of the outer class.

Code:

public class OuterClassDemo{
private int num1=36;//instance variable
void display(){
class LocalInnerClass{ // local inner class inside the method of outer class
void shw(){
System.out.println(num1);
}
}
LocalInnerClass li=new LocalInnerClass();
li.shw();
}
public static void main(String args[]){
OuterClassDemo obj=new OuterClassDemo();
obj.display();
}
}

Output:

Classe interne en Java

Advantages

Here are some of the advantages of the java inner class, which are explained below:

  • The advantage of an inner class is that it can access all of the members that means functions and variables of the outer class.
  • This feature in Java facilitates us to logically organize our codes based on functionality, increasing code readability, and maintenance. It also facilitates the optimization of your code.
  • An inner class can access all of the private members (which means both data and methods) of its outer class.

Conclusion

This concludes our learning of the topic “Inner Class in Java”. An inner class is a very interesting feature in java where you can use a member of the outer class by the object of its inner class. Write yourself the codes mentioned in the above examples in the java compiler and verify the output. Learning of codes will be incomplete if you will not write code by yourself.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Article précédent:Réception d'e-mails en JavaArticle suivant:Réception d'e-mails en Java