Maison >Java >javaDidacticiel >Surcharge du constructeur à l'aide de blocs statiques en Java

Surcharge du constructeur à l'aide de blocs statiques en Java

王林
王林avant
2023-09-06 14:41:061353parcourir

Surcharge du constructeur à laide de blocs statiques en Java

L'acte d'instancier un objet appelle son constructeur correspondant, qui est à la base de nombreuses fonctionnalités de la programmation orientée objet. Il convient de noter que dans tout programme utilisant des objets, il y aura invariablement un constructeur par défaut : le compilateur le crée automatiquement pour une utilisation transparente.

Dans cette discussion, nous approfondirons la surcharge des constructeurs de blocs statiques en Java. La surcharge de constructeurs est le concept de définition de plusieurs constructeurs avec différents paramètres dans une classe.

Grammaire

Public class class_name {
   Class_name() {
   }
   Class_name(par1, par2..) {
   }
}

L'utilisation de constructeurs avec des blocs statiques offre plus de puissance et de flexibilité lors de l'initialisation des objets.

Algorithme

Pour surcharger le constructeur à l'aide d'un bloc statique, veuillez suivre ces étapes -

  • Étape 1 - Créez une classe avec plusieurs constructeurs avec différents paramètres.

  • Étape 2 - Créez un bloc statique à l'aide du mot-clé "static"

    Ce bloc est exécuté une fois lorsque la classe est chargée en mémoire.

  • Étape 3- Lors du chargement d'une classe, le bloc statique est d'abord exécuté, puis le constructeur est exécuté lors de la création de l'objet.

  • Étape 4 - Le constructeur sera appelé en fonction des arguments fournis.

Méthode 1 : Définir un bloc statique distinct

Cette approche consiste à définir séparément les blocs statiques et les constructeurs surchargés.

La traduction chinoise de

Exemple

est :

Exemple

Class Class_name{
   Static {
   }
   Public class_name(){
   }
   Public class_name(int value) {
   }
   Public class_name(string name) {
   }
   //Other methods
}

Dans cette approche, une classe peut avoir des constructeurs surchargés avec différentes listes de paramètres, qui incluent également du code d'initialisation. Il existe également un bloc statique séparé pour l'initialisation statique de la classe. Ce bloc sera exécuté une fois.

Exemple

Dans cet exemple, nous montrerons la méthode 1

class Emp { int id, exp;String name;static String company;
   static { company = "XYZ Corp"; }
   public Emp(){
      System.out.println("-"
                           + "\t"
                           + "-"
                           + "\t"
                           + "-"
                           + "\t"
                           + "\t"
                           + "-"); }
   public Emp(int id, String name){ System.out.println(id + "\t" + name + "\t"
                           + company + "\t" + exp); }
   public Emp(int id, String name, int exp) {
      System.out.println(id + "\t" + name + "\t"  + company + "\t" + exp); }
}
public class Way2Class {
   public static void main(String[] args) {
      System.out.println("Id"
                           + "\t"
                           + "Name"
                           + "\t"
                           + "Company"
                           + "\t"
                           + "Exp");
      Emp obj1 = new Emp(001, "Apoorva");
      Emp obj2 = new Emp(004, "Anu", 10);
      Emp obj3 = new Emp();
   }
}

Sortie

Id	Name	Company	Exp
1	Apoorva	XYZ Corp	0
4	Anu	XYZ Corp	10
-	-	-		-

Instructions

Dans une entreprise, des salariés ayant un certain nombre d'années d'expérience travailleront pour la même entreprise. Ainsi, si aucune valeur n'est transmise dans la variable d'entreprise, elle définit automatiquement le même nom d'entreprise que l'entreprise. Pour cela, nous utilisons des blocs statiques.

Méthode 2 : Appeler la méthode statique depuis le constructeur

Pour exécuter du code d'initialisation partagé, vous pouvez déclarer des méthodes statiques dans votre classe et les appeler depuis le constructeur.

La traduction chinoise de

Exemple

est :

Exemple

public class Way2Class {
   private int value;
   private String name;

   private static void initialize() {
      System.out.println("Common initialization code");
   }

   public Way2Class() {
      initialize();
      value = 0;
      name = "Default";
      System.out.println("No-arg constructor called");
   }

   public Way2Class(int value) {
      initialize();
      this.value = value;
      name = "Value";
      System.out.println("Int constructor called");
   }

   public Way2Class(String name) {
      initialize();
      value = 0;
      this.name = name;
      System.out.println("String constructor called");
   }

   public static void main(String[] args) {
      Way2Class obj1 = new Way2Class();
      Way2Class obj2 = new Way2Class(10);
      Way2Class obj3 = new Way2Class("Hello");
   }
}

Sortie

Common initialization code
No-arg constructor called
Common initialization code
Int constructor called
Common initialization code
String constructor called

Instructions

La classe Way2Class dans cette image contient trois constructeurs, chacun appelant la méthode static initialize () pour exécuter le code d'initialisation partagé. Chaque constructeur appelle la fonction statique initialize() spécifiée dans la classe. Sur la base des paramètres donnés, le constructeur approprié est appelé lors de la création de l'objet et la méthode statique initialize() est utilisée pour exécuter le code d'initialisation public.

Comparaison entre la méthode 1 et la méthode 2

Standard

Méthode 1

Méthode 2

Type

Blocs statiques séparés

Appelez la méthode statique du constructeur

Méthode

Réutilisez les méthodes statiques courantes avec différents constructeurs.

Méthodes statiques indépendantes et constructeurs communs.

Logique de la méthode

Surcharge du constructeur et blocs statiques

Surcharge du constructeur et blocs statiques

Conclusion

Alors que l'approche 2 (méthode statique appelée depuis le constructeur) offre plus de flexibilité dans l'organisation et l'héritage du code, l'approche 1 (plusieurs constructeurs avec du code commun) est plus indépendante et plus simple. Le choix entre les deux méthodes dépend des exigences spécifiques et des considérations de conception du projet en cours.

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:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer