[Java] Quelques points grammaticaux à noter

1. La séquence d'exécution de la classe Java , après qu'un objet est nouveau, le constructeur de la classe doit être appelé pour initialiser la classe, puis ses propriétés doivent être initialisées, puis le constructeur continuera à être appelé.

2. La méthode de construction ne peut pas être héritée. Une classe peut obtenir la méthode de construction. Il n'y a que deux façons: écrire la méthode de construction, ou s'il n'y a pas de méthode de construction, appeler la méthode de construction par défaut.

3. Super peut appeler des variables déclarées privées dans la classe parent. Les deux super () et this () doivent être placés dans la première ligne du constructeur. La différence entre super et this: ceci est utilisé pour indiquer l'objet courant lui-même, ou une instance de la classe courante, qui est une référence à cette instance; mais super n'est pas une référence à un objet, et on ne peut pas dire que super affecte un autre objet. Super demande simplement au compilateur d'appeler les mots-clés spéciaux parents pour les méthodes de classe.

4. Polymorphisme: La variable de la classe parente peut faire référence à l'instance de la classe parente ou à l'instance de la sous-classe, mais l'inverse n'est pas possible. Trois conditions nécessaires à l'existence du polymorphisme: il doit y avoir héritage, il doit y avoir réécriture de fonctions et la classe parente fait référence à l'objet de la classe enfant. Lorsque vous utilisez le polymorphisme pour appeler une méthode, vérifiez d'abord si la classe parente a la méthode, sinon, puis l'erreur de compilation, si c'est le cas, vérifiez si la sous-classe couvre la méthode, si la sous-classe couvre la méthode, puis appelez la sous-classe Method, sinon appelez la méthode de la classe parent. Par conséquent, on peut voir que l'un des avantages du polymorphisme est que lorsqu'il existe de nombreuses sous-classes, il n'est pas nécessaire de définir plusieurs variables de sous-classe. Vous ne pouvez définir qu'une seule variable de type de superclasse pour faire référence à des instances de différents types de sous-classes. Le polymorphisme pose un problème, c'est-à-dire comment déterminer le type de l'objet réellement référencé par une variable, alors vous pouvez utiliser l'opérateur instanceof.

5. Le mot-clé static, les variables statiques et les méthodes statiques. Static peut modifier les variables et les méthodes. Les membres statiques et les méthodes statiques sont accessibles directement via le nom de la classe, sans créer d'objet de cette classe pour y accéder. Par conséquent, ils sont également appelés membres de classe et méthodes de classe.

Les variables statiques appartiennent à la classe et n'appartiennent à aucun objet indépendant, vous pouvez donc accéder aux variables statiques sans créer une instance de la classe. La raison de ce résultat est que le compilateur crée une copie de la variable statique pour la classe entière, c'est-à-dire n'alloue qu'un espace mémoire. Bien qu'une classe puisse avoir plusieurs instances, ces instances partagent cette partie de la mémoire. Mais les variables d'instance sont différentes. Chaque fois qu'un objet est créé, l'espace mémoire est alloué une fois. La mémoire des différentes variables est indépendante les unes des autres et ne s'influencent pas. Lorsque la classe est chargée, les variables statiques sont initialisées.

Méthode statique: impossible de manipuler les objets, les méthodes statiques ne peuvent donc pas accéder aux variables d'instance, uniquement aux variables statiques de la classe elle-même. Si une méthode n'a pas besoin d'accéder à l'état de l'objet, les paramètres requis sont fournis via des paramètres explicites; ou une méthode n'a besoin que d'accéder à des variables statiques, des méthodes statiques peuvent être utilisées. Les méthodes statiques ne peuvent pas appeler directement des méthodes non statiques. Il n'y a pas d'objet actuel dans une méthode statique, vous ne pouvez donc pas utiliser this ou super. Les méthodes statiques ne peuvent pas être remplacées par des méthodes non statiques. Le constructeur ne peut pas être autorisé à être déclaré comme statique, car le constructeur devra peut-être initialiser des variables non statiques. Les variables locales ne peuvent pas être modifiées avec static, car les variables statiques appartiennent à la classe entière et les variables locales n'appartiennent qu'à {}.

6. Le mot-clé final. Finalité. La classe modifiée par le mot clé final ne peut pas être héritée. Les méthodes modifiées finales ne peuvent pas être remplacées par des sous-classes. La variable finale modifiée devient une constante et ne peut être affectée qu'une seule fois, et doit être affectée en même temps que la déclaration, et doit être explicitement affectée dans le constructeur avant de pouvoir être utilisée. Mais les variables locales modifiées finales ne peuvent être déclarées que sans affectation, puis affectées à nouveau. Final est généralement utilisé pour modifier ces fonctions générales, des données dont l'implémentation ou la valeur ne peut pas être changée arbitrairement, afin de ne pas être mal utilisées.

Une fois qu'une classe est déclarée comme finale, les méthodes contenues dans la classe seront également déclarées implicitement comme finales, mais les variables ne le seront pas.

7. Classe d'objets. Situé dans le package java.lang, il est l'ancêtre de toutes les classes java et chaque classe de java en est étendue.

La signification fondamentale de l'équivalence des données est que les valeurs de deux données sont égales. Lors de la comparaison avec equals () et ==, la comparaison des données de type référence est une référence, qui est une adresse mémoire. Les types de données de base comparent la valeur. La différence entre equals () et ==: equals () ne peut comparer que des types de référence, et == peut comparer des types de référence et des types de données de base. Lorsque vous utilisez equals () pour la comparaison, pour les classes File, String, Date et wrapper, le type et le contenu sont comparés, qu'ils soient ou non la même instance. Lors de la comparaison avec ==, les types de données des deux côtés du symbole doivent être identiques, sinon l'erreur de compilation se produira. Mais lorsque vous utilisez equals () pour comparer, tant que les deux données sont des types de référence.

Je suppose que tu aimes

Origine blog.csdn.net/michellechouu/article/details/48732143
conseillé
Classement