Maison > Java > javaDidacticiel > Constructeurs Java : quelle est la différence entre les constructeurs « void » et « non-void » ?

Constructeurs Java : quelle est la différence entre les constructeurs « void » et « non-void » ?

Barbara Streisand
Libérer: 2024-11-27 12:06:14
original
612 Les gens l'ont consulté

Java Constructors: What's the Difference Between

Comprendre les constructeurs Java : "void" vs "non-void"

En Java, un constructeur est une méthode spéciale qui initialise un instance d'une classe. Contrairement aux méthodes classiques, les constructeurs ne spécifient pas de type de retour ; au lieu de cela, ils portent le même nom que la classe elle-même. Cependant, Java permet la confusion en autorisant les constructeurs dits « vides ».

Exemple 1 : Constructeur non vide

Dans le code suivant, le constructeur class1( ) est déclaré sans spécifier de retour tapez :

public class class1 {
    public static Integer value = 0;
    public class1() {
        da();
    }
    public int da() {
        class1.value = class1.value + 1;
        return 5;
    }
    public static void main(String[] args) {
        class1 h = new class1();
        class1 h2 = new class1();
        System.out.println(class1.value); // Output: 2
    }
}
Copier après la connexion

Explication :

  • Le constructeur class1() initialise le champ statique de valeur à 0.
  • Lorsque les instances h et h2 de la classe1 sont créés, le constructeur est appelé.
  • La méthode da() incrémente la valeur, ce qui donne un résultat final valeur de 2.

Exemple 2 : Constructeur Void

Considérons maintenant ce code avec un constructeur "void":

public class class1 {
    public static Integer value = 0;
    public void class1() {
        da();
    }
    public int da() {
        class1.value = class1.value + 1;
        return 5;
    }
    public static void main(String[] args) {
        class1 h = new class1();
        class1 h2 = new class1();
        System.out.println(class1.value); // Output: 0
    }
}
Copier après la connexion

Explication :

  • La classe1() Le constructeur "void" n'initialise pas le champ de valeur et n'appelle aucune méthode.
  • Lorsque les instances h et h2 sont créées, le constructeur par défaut est appelé, qui n'effectue aucune initialisation.
  • Par conséquent, le champ valeur reste à sa valeur initiale de 0.

Conclusion :
Dans Java, les constructeurs qui déclarent un type de retour, même s'il est vide, ne sont pas du tout des constructeurs. Ce sont simplement des méthodes. Les vrais constructeurs, qui initialisent les instances de classe, ne spécifient jamais de type de retour. Si aucun constructeur n'est explicitement défini, Java ajoute automatiquement un constructeur par défaut qui n'effectue aucune initialisation. Comprendre cette distinction est crucial pour une initialisation correcte de la classe en Java.

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