Maison > Java > javaDidacticiel > Quand Java génère-t-il un constructeur par défaut ?

Quand Java génère-t-il un constructeur par défaut ?

Patricia Arquette
Libérer: 2024-12-31 20:21:10
original
983 Les gens l'ont consulté

When Does Java Generate a Default Constructor?

Une compréhension complète des constructeurs par défaut Java

En Java, un constructeur par défaut est un constructeur sans argument généré implicitement qui joue un rôle crucial lorsque vous ne définissez pas explicitement les constructeurs pour une classe. Cependant, contrairement à la croyance populaire, définir tout autre constructeur désactive la création du constructeur par défaut.

Aucun des deux exemples n'est un constructeur par défaut

Aucun des constructeurs fournis dans la question n'est un constructeur par défaut, car les deux ont des arguments. Le constructeur par défaut n'aurait aucun argument.

Définition et génération du constructeur par défaut

Le constructeur par défaut est automatiquement généré si aucun autre constructeur n'est défini dans une classe. Il a le même modificateur d'accès que la classe et initialise les variables d'instance à leurs valeurs par défaut respectives :

  • Les types numériques (int, long, float, double) sont définis sur 0
  • Booléen les types sont définis sur false
  • Les types d'objets, tels que String, sont définis sur null

Par exemple, si le Le module de classe a trois champs : nom (String), crédits (int) et heures (int), le constructeur par défaut serait :

public Module() {
  this.name = null;
  this.credits = 0;
  this.hours = 0;
}
Copier après la connexion

Implications de la définition d'autres constructeurs

Une fois que vous avez défini au moins un constructeur pour une classe, le constructeur par défaut n'est pas généré. En effet, le constructeur par défaut est essentiellement un espace réservé, et une fois que vous fournissez votre ou vos propres constructeurs, il devient redondant.

Clarification supplémentaire

Techniquement, ce n'est pas le cas. le constructeur qui initialise les champs par défaut. Cependant, puisque le constructeur est le point d'entrée d'une classe, sa présence ou son absence affecte indirectement l'initialisation par défaut.

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal