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
Mary-Kate Olsenoriginal
2024-12-22 07:13:13829parcourir

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

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

public Module() {}

Ou, si les types de champs sont primitifs :

public Module() {
   super();
   this.name = null;
   this.credits = 0;
   this.hours = 0;
}

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