Maison >Java >javaDidacticiel >Surcharge du constructeur à l'aide 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.
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.
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.
Cette approche consiste à définir séparément les blocs statiques et les constructeurs surchargés.
La traduction chinoise deClass 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.
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(); } }
Id Name Company Exp 1 Apoorva XYZ Corp 0 4 Anu XYZ Corp 10 - - - -
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.
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 depublic 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"); } }
Common initialization code No-arg constructor called Common initialization code Int constructor called Common initialization code String constructor called
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.
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 |
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!