Maison > Java > javaDidacticiel > Initialisation de variable d'instance en Java : déclaration ou constructeur – Quel est le meilleur ?

Initialisation de variable d'instance en Java : déclaration ou constructeur – Quel est le meilleur ?

Susan Sarandon
Libérer: 2024-12-05 18:40:14
original
784 Les gens l'ont consulté

Instance Variable Initialization in Java: Declaration vs. Constructor – Which is Better?

Initialisation des variables d'instance : déclaration ou constructeur

Lors de l'initialisation des variables d'instance en Java, il existe deux approches courantes :

  1. Initialisation de la variable d'instance sur Déclaration

    class A {
        B b = new B();
    }
    Copier après la connexion
  2. Initialisation de la variable d'instance dans le constructeur

    class A {
        B b;
    
        A() {
             b = new B();
        }
    }
    Copier après la connexion

Y a-t-il un avantage pour l'une ou l'autre approche ?

Alors que le compilateur Java traite les deux approches de la même manière, certaines considérations doivent être prises en compte :

Ordre d'initialisation :
Les deux approches initialisent les variables d'instance dans l'ordre dans lequel elles sont déclarées dans le code.

Lisibilité :
La première approche (initialisation sur déclaration) est généralement considérée comme plus lisible.

Gestion des exceptions :
Dans la deuxième approche (initialisation dans le constructeur), la gestion des exceptions est possible. Si l'initialisation génère une exception, la création de l'objet échouera.

Bloc d'initialisation :
En plus des approches ci-dessus, il existe un bloc d'initialisation, qui est également placé dans le constructeur par le compilateur.

{
    a = new A();
}
Copier après la connexion

Meilleur Pratiques :

En général, il est recommandé d'initialiser les variables d'instance lors de la déclaration, sauf s'il existe un besoin spécifique de gestion des exceptions ou d'initialisation paresseuse. Lorsque vous travaillez avec des dépendances, il est préférable d'éviter d'utiliser directement l'opérateur new et d'opter plutôt pour l'injection de dépendances.

Exemple :

Si vous avez un ExpensiveObject coûteux pour initialiser, vous pouvez utiliser l'initialisation paresseuse pour améliorer les performances :

ExpensiveObject o;

public ExpensiveObject getExpensiveObject() {
    if (o == null) {
        o = new ExpensiveObject();
    }
    return o;
}
Copier après la connexion

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