Les constructeurs :
Lorsque vous créez un objet (instanciation d'une classe), vous faites automatiquement appel à une méthode générique appelée constructeur.
Cette méthode permet généralement d'assigner des valeurs aux variables définies dans la classe. Cette méthode obéit toutefois à des règles particulières :
- Un constructeur doit toujours être une méthode publique
- Vous devez impérativement donner le même nom que votre classe au constructeur
- Un constructeur ne retourne rien, c'est à dire que vous n'ajouterez pas de return dans cette méthode.
- Vous ne devez pas mettre de void, même si le constructeur ne retourne rien.
public class test { /** * @param args */ //constructeur public test() { System.out.println("L'objet a été créé "); } // en peut également surcharger un constructeur public test(String nom) { System.out.println("L'objet "+nom+" a été créé "); } public static void main(String[] args) { // TODO Auto-generated method stub new test(); new test("votreNom"); } }En général, un constructeur sert plutôt à attribuer des valeurs aux attributs de la classe.il rest a dire que pour surcharger une méthode (c'est a dire la possibilité d'appeler plusieurs méthodes-dans notre cas les constructeurs- avec le même nom, ) à condition que leurs arguments diffèrent en type et/ou en nombre
voici un autre exemple pour mieux comprendre
public class test { //variables de class int num; String nom; /** * @param args */ //les constructeurs /* c est ce qu'on appelle le constructeur par défaut *mais pas besoin de l écrire chaque fois car java le génère automatiquement public test(){ } */ public test() { this.num=0; this.nom="inconu"; System.out.println("L'objet a été créé "); } // en peut également surcharger un constructeur public test(int num,String nom) { this.num=num; this.nom=nom; System.out.println("L'objet "+nom+" a été créé "); } public static void main(String[] args) { // TODO Auto-generated method stub //utilisation du 1 er constructeur new test(); //utilisation du 2eme constructeur new test(1,"votreNom"); } }
Le destructeur :
Le destructeur est une méthode spéciale qui sera appelée (si elle est redéfinie dans la classe) lorsque l'objet sera nettoyé de la mémoire par le garbage collector. Le garbage collector est un "ramasse-miettes" chargé de faciliter la tâche des programmeurs en libérant les ressources prises en mémoire automatiquement. Cette méthode n'est pas forcément appelée lorsque vous supprimez l'objet.
Pour utiliser le destructeur vous devez redéfinir une méthode appelée finalize() publique et qui ne renvoie rien. On peut donc avoir le code suivant :
merci a Anthony de vulgarisation-informatiquePour utiliser le destructeur vous devez redéfinir une méthode appelée finalize() publique et qui ne renvoie rien. On peut donc avoir le code suivant :
public class Test { private int zero; private boolean condition; public Test() { zero = 0; condition = false; System.out.println("L'objet a été créé"); } public void finalize() { System.out.println("Objet nettoyé de la mémoire"); } }