Chapter 04 Initialization Cleanup ?le D Daniel TIJ FR All Chapter htm - version Armel Mise en forme du code html titres-hx verdana paragraphes- p Georgia code-blockquote - version Florence DEFAIX Après corrections proposées par Jérome QUELIN et J-P VIDAL

Initialization Cleanup ?le D Daniel TIJ FR All Chapter htm - version Armel Mise en forme du code html titres-hx verdana paragraphes- p Georgia code-blockquote - version Florence DEFAIX Après corrections proposées par Jérome QUELIN et J-P VIDAL Initialisation Nettoyage Depuis le début de la révolution informatique la programmation sans garde-fou ? est la principale cause des coûts de développement excessifs L'initialisation et la libération d'éléments sont deux problèmes majeurs De nombreux bogues en C surviennent lorsque le programmeur oublie d'initialiser une variable L'utilisation de blibliothèques augmente ce risque car les utilisateurs ne savent pas toujours comment initialiser certains composants ni même qu'ils le doivent La phase de nettoyage ou libération pose problème dans la mesure o? il est très facile d'oublier l'existence d'un élément dont on n'a plus besoin car justement il ne nous intéresse plus Dans ce cas certaines ressources utilisées par un élément oublié sont conservées Ce phénomène peut entra? ner un manque de ressources dans la majorité des cas un manque de mémoire C a introduit la notion de constructeur une méthode appelée automatiquement à la création d'un objet Java utilise aussi les constructeurs associé à un ramasse-miettes qui libère les ressources mémoire lorsqu'elles ne sont plus utilisées Ce chapitre décrit les concepts d'initialisation et de libération ainsi que leur support dans Java Garantie d'initialisation gr? ce au constructeur Pour chaque classe il serait possible de créer une méthode initialise Ce nom inciterait à exécuter la méthode avant d'utiliser l'objet Malheureusement ce serait à l'utilisateur de se souvenir d'appeler cette méthode pour chaque instance En Java le concepteur d'une classe peut garantir son initialisation gr? ce à une méthode spéciale que l'on dénomme constructeur Quand une classe possède un constructeur Java l'appelle automatiquement à toute création d'objets avant qu'ils ne puissent être utilisés L'initialisation est donc bien garantie Le premier problème consiste à trouver un nom pour cette méthode ce qui entra? ne deux nouveaux problèmes Tout d'abord il pourrait y avoir un con it avec le nom d'un attribut Ensuite c'est à la compilation que l'appel du constructeur est véri ?é Il faut donc que le compilateur puisse décider du nom du constructeur La solution de C para? t la plus simple et la plus logique elle est donc aussi utilisée en Java Il faut donc donner au constructeur le nom de sa classe Il semble naturel qu'une telle méthode soit en charge de l'initialisation de la classe Voici une classe avec un constructeur c SimpleConstrutor java Démonstration d'un constructeur class Rock of AM C Initialization Cleanup ?le D Daniel TIJ FR All Chapter htm Rock Ceci est un constructeur System out println Creating Rock ? ? public class SimpleConstructor public static void main String args for int i i i new Rock Quand un objet est créé new Rock de l'espace mémoire est alloué et le constructeur est appelé L'objet sera obligatoirement initialisé avant qu'il ne puisse être manipulé Notez que la convention de nommage qui impose une minuscule pour la première lettre des

  • 23
  • 0
  • 0
Afficher les détails des licences
Licence et utilisation
Gratuit pour un usage personnel Aucune attribution requise
Partager