Définition des méthodes d'instance et des méthodes de classe
Lors de la déclaration d'une méthode, le type de méthode qui n'est pas modifié par le mot-clé static est une méthode d'instance, et le type de méthode qui est modifié par le mot-clé static est une méthode de classe, également appelée méthode statique.
Par exemple:
classMain{inta;floatmax(floatb,floatc){//Méthode d'instance...}staticfloatmax(floatd,floate){//Méthode de classe...}}
La différence entre les méthodes d'instance et les méthodes de classe
1. L'objet appelle la méthode d'instance :
Lorsque le fichier de bytecode d'une classe est chargé en mémoire, la méthode d'instance de la classe ne se verra pas attribuer d'adresse d'entrée. Ce n'est qu'après que la classe a créé un objet que la méthode d'instance de la classe se verra attribuer une adresse d'entrée, de sorte que le. La méthode d'instance peut être utilisée par n'importe quel objet créé par l'exécution de l'appel d'objet.
Avis:
Lorsque nous créons le premier objet, la méthode d'instance dans la classe se voit attribuer une adresse d'entrée. Lorsque l'objet est à nouveau créé, l'adresse d'entrée n'est plus attribuée, c'est-à-dire que l'adresse d'entrée de la méthode est partagée par tous les objets. . Lorsque tous les objets Lorsqu'aucun n'existe, l'adresse d'entrée de la méthode est annulée.
Les méthodes d'instance peuvent non seulement exploiter des variables d'instance, mais également des variables de classe. Lorsqu'un objet appelle une méthode d'instance, les variables d'instance et les variables de classe qui apparaissent dans la méthode sont des variables affectées à l'objet, mais les variables de classe sont partagées avec tous les autres objets.
2. Appelez la méthode de classe en utilisant le nom de la classe :
Pour les méthodes de classe dans une classe, lorsque la classe est chargée en mémoire, l'adresse d'entrée correspondante est attribuée, de sorte que la méthode de classe peut non seulement être appelée et exécutée par n'importe quel objet créé par la classe, mais peut également être appelée directement via le nom de classe. L'adresse d'entrée de la méthode de classe n'est annulée qu'à la fin du programme.
Avis:
Les méthodes d'instance ne peuvent pas être appelées par nom de classe, uniquement par des objets. Et comme les variables membres de l'instance n'ont pas alloué de mémoire avant que la classe ne crée l'objet, la méthode de classe ne peut pas exploiter les variables d'instance.
3. Principes de conception des méthodes de classe :
Si une méthode n’a pas besoin d’exploiter de variables d’instance dans la classe pour répondre aux besoins du programme, vous pouvez envisager de concevoir une telle méthode comme méthode statique.
Pour les méthodes statiques, vous pouvez l'appeler directement avec le nom de la classe sans créer d'objet. La création d'un objet entraînera l'allocation d'espace mémoire aux variables d'instance de la classe.