Maison > Java > javaDidacticiel > Quelle est la différence entre les constructeurs par défaut et définis par l'utilisateur en Java ?

Quelle est la différence entre les constructeurs par défaut et définis par l'utilisateur en Java ?

Mary-Kate Olsen
Libérer: 2024-12-22 07:13:13
original
903 Les gens l'ont consulté

What's the Difference Between Default and User-Defined Constructors in Java?

Constructeurs par défaut en Java

En Java, un constructeur par défaut est automatiquement généré si aucun autre constructeur n'est défini. Il s'agit d'un constructeur sans argument qui initialise les champs à leurs valeurs par défaut. Le code suivant ne définit pas de constructeur par défaut :

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

Il s'agit d'un constructeur défini par l'utilisateur qui prend des arguments. Un constructeur par défaut ressemblerait à ceci :

public Module() {}
Copier après la connexion

Ou, si les types de champs sont primitifs :

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

Différences clés

Le constructeur principal La différence entre un constructeur par défaut et un constructeur défini par l'utilisateur est :

  • Les constructeurs par défaut ne nécessitent pas d'arguments, tandis que les constructeurs définis par l'utilisateur peuvent avoir des arguments.
  • Les constructeurs par défaut initialisent automatiquement les champs à leurs valeurs par défaut (par exemple, null pour les objets, 0 pour les primitives numériques), tandis que les constructeurs définis par l'utilisateur permettent une initialisation personnalisée.

Constructeur par défaut vs aucun constructeur

N'avoir aucun constructeur du tout est équivalent à avoir un constructeur par défaut. Lorsqu'il n'y a pas de constructeurs, le compilateur Java en génère automatiquement un par défaut sans arguments ni initialisation de champ.

Remarque :

  • Si des constructeurs sont définis dans une classe, le constructeur par défaut n'est pas généré.
  • Les constructeurs par défaut ne peuvent être créés qu'implicitement, pas explicitement.

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 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