Introduction au constructeur et au destructeur en Java

L'article suivant Constructor and Destructor in Java fournit un aperçu détaillé de la création de constructeur et destructeur en Java. Chaque langage de programmation a ce concept appelé constructeur et destructeur. Java est un langage de programmation orienté objet. Si vous connaissez les concepts orientés objet, il vous sera alors utile de les comprendre plus clairement. Un constructeur est quelque chose qui initialise des objets et les destructeurs doivent détruire cette initialisation. Java a un ramasse-miettes automatique qui utilise l'algorithme de marquage et de balayage.

Qu'est-ce que le constructeur et le destructeur en Java?

Un constructeur est utilisé pour initialiser une variable, ce qui signifie qu'il alloue de la mémoire pour le même Un constructeur n'est rien d'autre qu'une initialisation automatique de l'objet. Chaque fois que le programme crée un objet à ce moment, le constructeur est appelé automatiquement. Vous n'avez pas besoin d'appeler cette méthode explicitement. Destructor est utilisé pour libérer la mémoire allouée lors de l'initialisation. Généralement, en java, nous n'avons pas besoin d'appeler explicitement le destructeur. Java a une fonction de collecte automatique des ordures.

Pourquoi avons-nous besoin d'un constructeur et d'un destructeur en Java?

Constructeur et destructeur principalement utilisés pour gérer efficacement l'allocation et la désallocation de mémoire. Le constructeur et le destructeur jouent un rôle très important dans tout langage de programmation: l'initialiser et le détruire après utilisation pour libérer de l'espace mémoire.

Fonctionnement du constructeur et du destructeur en Java

Un constructeur n'est qu'une méthode en java. Qui a le même nom que le nom de la classe. La méthode constructeur n'a aucun type de retour.

Regardez l'exemple suivant pour plus de clarté:

class Employee (
Employee() (
)
)

Si vous voyez dans l'exemple ci-dessus, nous n'avons donné aucun type de retour comme int ou void à la méthode qui a le même nom qu'un nom de classe.

Il est principalement utilisé pour initialiser l'objet. Lorsque nous créons un objet d'une classe à ce moment, le constructeur est invoqué.

Ce sera plus clair avec l'extrait de code suivant.

Comment créer des constructeurs et des destructeurs en Java?

Regardez l'exemple suivant

class Employee (
Employee() ( //This is constructor. It has same name as class name.
System.out.println(“This is the default constructor”);
)
)

Types de constructeur

Il existe deux types de constructeurs selon le type que nous pouvons ajouter et supprimer des variables.

1. Constructeur par défaut

2. Constructeur paramétré

Avec cela, nous allons également voir une surcharge du constructeur.

1. Constructeur par défaut

C'est le seul type de constructeur. Par défaut sans aucun paramètre, ce constructeur a lieu. Ce constructeur ne contient aucun paramètre.

Exemple:

Class Abc(
Abc()(
System.out.println(“This is the example of default constructor.”);
)
)

2. Constructeur paramétré

Comme son nom l'indique, le constructeur paramétré possède certains paramètres ou arguments au moment de l'initialisation de l'objet.

Exemple:

class Square(
int width, height;
Square( int a, int b)(
width = a;
height = b;
)
int area()(
return width * height;
)
)
class Cal(
public static void main(String() args)(
(
Square s1 = new Square(10, 20);
int area_of_sqaure = s1.area();
System.out.println("The area of square is:" + area_of_sqaure);
)
)
)

Production:

Java Cal

La superficie de la place est de 200

Maintenant, il est temps de parler de la surcharge des constructeurs en java. Cela signifie que plusieurs constructeurs avec des paramètres différents. Ainsi, avec cela, chaque constructeur peut effectuer différentes tâches. Parfois, conformément à l'exigence, nous devons initialiser les constructeurs de différentes manières.

Exemple

public class Abc(
String name;
int quantity;
int price;
Abc( String n1, int q1, int p1)(
name = n1;
quantity = q1;
price = p1;
)
Abc( String n2, int p2)(
name = n2;
price = p2;
quantity = price/10;
)
void display()(
System.out.println("Product Name"+ name);
System.out.println("Product quantity is"+ quantity);
System.out.println("Product price is:"+ price);
)
public static void main(String() args)(
Abc product1;
product1 = new Abc("Dates", 500, 50);
product1.display();
product1 = new Abc("cashu", 800);
product1.display();
)
)

Production:

Nom du produit Dates

La quantité du produit est 500

Le prix du produit est 50

Nom du produit cashu

La quantité du produit est 80

Le prix du produit est 800

Essayez le programme ci-dessus et vous comprendrez exactement ce qui se passe avec la surcharge du constructeur.

Destructeur

Avant de commencer à parler de destructeur, laissez-moi vous dire qu'il n'y a pas de destructeur en java. Destructor est en langage de programmation C ++. Si nous parlons de java, alors java a une fonctionnalité appelée ramasse-miettes automatique. Ce qui libère la mémoire allouée dynamiquement quand il n'y a pas d'utilisation. Ce concept est très important et vous pouvez en savoir plus sur cette collecte de déchets en Java.

  • Java utilise la technique de collecte garb pour l'allocation de mémoire automatiquement.
  • Il n'est pas nécessaire d'utiliser explicitement des destructeurs comme C ++.
  • Pour allouer de la mémoire en Java, nous n'avons pas de fonction malloc comme dans la programmation C.
  • Le même processus d'allocation de mémoire est effectué par le nouvel opérateur en java.
  • nouveau mot clé alloue de l'espace mémoire pour un objet sur la mémoire du tas.
  • Au moment de l'exécution du programme, un nouveau mot clé alloue de l'espace mémoire à l'objet. L'utilisateur final doit s'en préoccuper car l'allocation de mémoire est gérée par le programme. Au moment où l'objet utilisé dans les programmes fait avec le travail, la mémoire utilisée pour l'objet est utilisée pour une autre tâche. Ce processus d'utilisation efficace de la mémoire est le travail de récupération de place en Java.

Parlons alors de destructeur. Comme nous le savons, il n'y a pas de destructeur en java car il a la méthode finalize () pour le faire. Voici quelques points clés à noter.

Finalize () Méthodes

  • La méthode de finalisation est un travail comme destructeur et opposé au constructeur comme nous l'avons vu précédemment.
  • Généralement, la méthode finalize est utilisée pour supprimer l'objet.
  • Pour utiliser cette méthode, nous devons définir explicitement cette méthode en java.
  • La méthode finalize commence à fonctionner après la récupération de place effectuée avec son travail.
  • Cela signifie simplement qu'après avoir libéré de l'espace mémoire en désallouant l'espace mémoire des objets, il y a des chances que l'utilisation de la mémoire soit toujours là avec d'autres choses comme les polices, etc. pour supprimer cet espace mémoire ou pour libérer cet espace, nous utilisons la méthode finalize ().

Conclusion

Le constructeur et le destructeur (garbage collection en java) sont des choses très importantes à clarifier dans n'importe quel langage de programmation car c'est le début où vous pouvez réellement savoir comment les choses se font en arrière-plan pour gérer l'espace mémoire.

Articles recommandés

Ceci est un guide du constructeur et du destructeur en Java. Ici, nous discutons de l'introduction au constructeur et au destructeur, pourquoi en avons-nous besoin et comment le constructeur et le destructeur fonctionnent-ils en java avec un exemple. Vous pouvez également consulter les articles suivants pour en savoir plus -

  1. Manipulation de bits en Java
  2. Meilleur IDE Java
  3. Tri de tas en Java
  4. Qu'est-ce que l'interface Java?
  5. Qu'est-ce que le constructeur et le destructeur en C ++?
  6. Exemples pour implémenter le tri en tas en Python
  7. Guide de Destructor en PHP avec des exemples