Discussion:Programmation Java/Instanciation et cycle de vie
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?
modifieren 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é 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 instructionthrow
), - 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 avecfinal
pour empêcher la création de sous-classes.
- Il ne peut retourner aucune valeur (par de type de retour, pas d'instruction
- --DavidL 12 avril 2008 à 14:57 (CEST)