Discussion:Programmation Java/Instanciation et cycle de vie

Un livre de Wikilivres.
Sauter à la navigation Sauter à la recherche

Je ne vois pas l'intérêt de parler de la méthode finalize dans un cours d'introduction en Java. Après tout, ce n'est pas du c++. Il est très rare de voir la méthode finalize utilisée en Java, car ce n'est pas l'équivalent d'un destructeur. D'ailleurs, Java ne garantit rien sur le moment ou dans quel ordre la méthode sera appelé, et il se peut même qu'elle ne soit JAMAIS appelée, si l'objet n'est pas traité par le ramasse-miettes (voir [1] pour plus de détails). Pfv2 2 aoû 2005 à 23:26 (UTC)

est ce que le constructeur est une methode?[modifier le wikicode]

en java une methode peut etre overriden mais le constructuer non, une methode possede toujours un type de retour mais pas un constructeur.une methode peut avoir n'importe quel modificateur maid le constructeur seulement celui de la class mere. pour toutes ces raisons,est ce qu'on peut considerer le constructeur comme methode?

Le constructeur doit être considérée comme une méthode spéciale, il possède plusieurs points communs avec les méthodes:
  • Il contient des instructions,
  • Il peut avoir des paramètres,
  • Il peut avoir différents modificateurs d'accès : private, protected, public ou package (sans mot clé spécifié),
  • Il peut lancer des exceptions (déclaration throws et instruction throw),
  • Une classe hérite des constructeurs de la classe mère,
Un constructeur se distingue d'une méthode par les points suivants:
  • Il ne peut retourner aucune valeur (par de type de retour, pas d'instruction return),
  • Son nom est toujours celui de la classe à laquelle il appartient (cependant, à la compilation il est renommé "<init>"),
  • Une classe hérite des constructeurs de la classe mère, mais chaque constructeur défini doit obligatoirement appeler un constructeur de la classe mère en utilisant explicitement le mot clé super(...), ou par un appel implicite au constructeur sans paramètre (si la classe mère en possède un)
  • Un constructeur ne peut utiliser les modificateurs suivants:
    • static : un constructeur ne peut être défini en dehors de toute instance,
    • abstract : un constructeur ne peut être abstrait,
    • synchronized : un constructeur ne peut être abstrait,
    • final : un constructeur ne peut être final, par contre il est possible de déclarer la classe avec final pour empêcher la création de sous-classes.
--DavidL 12 avril 2008 à 14:57 (CEST)