Maison >Java >javaDidacticiel >Comment puis-je appeler un constructeur depuis un autre en Java ?

Comment puis-je appeler un constructeur depuis un autre en Java ?

Barbara Streisand
Barbara Streisandoriginal
2024-12-31 05:41:09958parcourir

How Can I Call One Constructor from Another in Java?

Appeler un constructeur depuis un autre en Java

En Java, il est possible d'appeler un constructeur depuis un autre au sein de la même classe. Cela peut être utile dans divers scénarios, comme l'initialisation d'un objet avec des valeurs fournies par un constructeur parent ou la personnalisation de l'état de l'objet en fonction de critères spécifiques.

Pour appeler un constructeur depuis un autre, utilisez simplement le this mot-clé suivi du nom de l'autre constructeur et de ses paramètres, comme indiqué dans l'exemple suivant :

public class Foo {
    private int x;

    public Foo() {
        this(1);  // Call the Foo(int x) constructor with the value 1
    }

    public Foo(int x) {
        this.x = x;
    }
}

Dans cet exemple, le constructeur par défaut Foo() appelle le constructeur Foo(int x) avec la valeur 1. Par conséquent, lorsqu'un objet Foo est créé sans spécifier d'argument, son champ x sera automatiquement défini sur 1.

Il est important de noter que vous ne pouvez enchaîner qu'avec un seul constructeur, et cet appel doit être la première instruction du corps de votre constructeur. De plus, si vous devez appeler un constructeur à partir d'une superclasse, utilisez super au lieu de this.

Par exemple, considérez le scénario suivant :

public class Animal {
    private String name;

    public Animal(String name) {
        this.name = name;
    }

    public Animal() {
        this("Default Animal");  // Call the Animal(String name) constructor with the default name "Default Animal"
    }
}

Dans ce cas, les deux constructeurs, un avec un paramètre et un sans, appellent le constructeur superclass avec le nom paramètre ou une valeur par défaut, respectivement. Cela vous permet d'initialiser la propriété name pour tous les objets Animal.

En tirant parti de la possibilité d'appeler un constructeur à partir d'un autre, les développeurs peuvent créer des hiérarchies de classes complexes avec une initialisation d'objet personnalisable et garantir un état cohérent et prévisible pour les objets nouvellement créés. objets.

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