<?xml version="1.0"?>
<rss xmlns:php="http://php.net/xsl" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title>Variable - Chicoree</title><link>http://www.chicoree.fr/w/Variable</link><atom:link href="http://www.chicoree.fr/w/Variable?action=toFeed" rel="self" type="application/rss+xml"/><description/><item><title>1 Avertissement</title><link>http://www.chicoree.fr/w/Variable#Avertissement</link><description><![CDATA[<p>Cet article est un article d'<i>introduction</i>. Les experts se rendront compte que je passe sous silence certains <i>détails</i> comme par exemple ceux liés à l'héritage et à l'accès aux variables d'instances d'une classe de base. Ou encore des spécificités de certains langages comme le modificateur <tt>friend</tt> du C++.
</p>]]></description></item><item><title>2 Durée de vie et portée</title><link>http://www.chicoree.fr/w/Variable#Dur.C3.A9e_de_vie_et_port.C3.A9e</link><description><![CDATA[<p>Ces 4 types de variables se distinguent par leur <b>portée</b> et leur <b>durée de vie</b>.
</p>]]></description></item><item><title>3 Variables locales</title><link>http://www.chicoree.fr/w/Variable#Variables_locales</link><description><![CDATA[<p>Dans notre panorama des variables, les <b>variables locales</b> sont celles dont la portée et la durée de vie sont les plus réduites.
</p>]]></description></item><item><title>3.1 Durée de vie</title><link>http://www.chicoree.fr/w/Variable#Dur.C3.A9e_de_vie</link><description><![CDATA[<p>Une variable locale est créée à chaque fois que s'exécute la méthode (ou fonction) dans laquelle elle est déclarée. La variable est détruite dès la fin de cette méthode (ou fonction). Certains langages (C++, Java par ex.) sont encore plus restrictifs puisqu'une variable locale cesse d'exister dès la fin du bloc (entre accolades) où elle a été déclarée.
</p>]]></description></item><item><title>3.2 Portée</title><link>http://www.chicoree.fr/w/Variable#Port.C3.A9e</link><description><![CDATA[<p>Une variable locale ne peut être utilisée que dans la méthode qui la déclare. Certains langages (C++, Java par ex.) sont encore plus restrictifs puisqu'une variable locale ne peut être utilisée que dans le bloc (entre accolades) où elle a été déclarée.
</p>]]></description></item><item><title>3.3 Exemple</title><link>http://www.chicoree.fr/w/Variable#Exemple</link><description><![CDATA[<p>Le programme ci-dessus affiche les factorielle de 3 et 7. Il déclare <i>plein</i> de variables locales. Et <i>uniquement</i> des variables locales. 
</p>]]></description></item><item><title>3.4 Utilisation</title><link>http://www.chicoree.fr/w/Variable#Utilisation</link><description><![CDATA[<p>Les variables locales sont les plus nombreuses dans un programme bien conçu. Elles servent pour mémoriser les données temporaires, les résultats intermédiaires, les compteurs de boucle, etc. Une bonne règle générale est de considérer qu'en cas de doute, il est préférable d'utiliser une variable locale.
</p>]]></description></item><item><title>4 Variables d'instance</title><link>http://www.chicoree.fr/w/Variable#Variables_d.27instance</link><description><![CDATA[<p>Dans les langages impératifs orientés objets, la <b>variable d'instance</b> est une variable associée à un objet et accessible par les méthodes de cet objet.
</p>]]></description></item><item><title>4.1 Durée de vie</title><link>http://www.chicoree.fr/w/Variable#Dur.C3.A9e_de_vie_2</link><description><![CDATA[<p>Les variables d'instance d'un objet sont crées lorsque cet objet est instancié. Elle sont détruites lorsque l'objet est détruit.
</p>]]></description></item><item><title>4.2 Portée</title><link>http://www.chicoree.fr/w/Variable#Port.C3.A9e_2</link><description><![CDATA[<p>Une variable d'instance est accessible par toutes les méthodes appliquées sur un objet.
</p>]]></description></item><item><title>4.3 Exemple</title><link>http://www.chicoree.fr/w/Variable#Exemple_2</link><description><![CDATA[<p>Ce programme crée deux objets (deux <i>instances</i>) de la classe <tt>Book</tt> puis demande à chacune de s'afficher.
</p>]]></description></item><item><title>4.4 Utilisation</title><link>http://www.chicoree.fr/w/Variable#Utilisation_2</link><description><![CDATA[<p>Les variables d'instances sont nécessaires quand une donnée doit <i>survivre</i> entre plusieurs utilisations du même objet: dans l'exemple ci-dessus, la donnée devait survivre entre la construction de l'objet et son affichage.
</p>]]></description></item><item><title>5 Variables de classe</title><link>http://www.chicoree.fr/w/Variable#Variables_de_classe</link><description><![CDATA[<p>Jusqu'à présent, nous avons parlé des variables locales et des variables d'instance. Toutes deux ont en commun de pouvoir exister simultanément en autant d'exemplaires que nécessaire. Par ailleurs, ces variables se caractérisent par une durée de vie limitée.
</p>]]></description></item><item><title>5.1 Durée de vie</title><link>http://www.chicoree.fr/w/Variable#Dur.C3.A9e_de_vie_3</link><description><![CDATA[<p>La durée de vie des variables de classe est des plus simples puisqu'elles existent du début à la fin du programme, et chacune en <i>un seul</i> exemplaire.
</p>]]></description></item><item><title>5.2 Portée</title><link>http://www.chicoree.fr/w/Variable#Port.C3.A9e_3</link><description><![CDATA[<p>Les variables de classes sont accessibles par toutes les méthodes des objets d'une même classe.
</p>]]></description></item><item><title>5.3 Exemple</title><link>http://www.chicoree.fr/w/Variable#Exemple_3</link><description><![CDATA[<p>Le programme ci-dessus utilise une variable de classe pour mémoriser le nombre de livres créé (et par conséquent l'ID du prochain livre).
</p>]]></description></item><item><title>5.4 Utilisation</title><link>http://www.chicoree.fr/w/Variable#Utilisation_3</link><description><![CDATA[<p>Les variables de classes sont utiles lorsqu'il est nécessaire de partager une information entre les différentes instances d'une classe. 
</p>]]></description></item><item><title>6 Variables globales</title><link>http://www.chicoree.fr/w/Variable#Variables_globales</link><description><![CDATA[<p>De toutes les variables dont nous parlons ici, les globales sont celles qui sont les moins protégées contre les utilisations "abusives".
</p>]]></description></item><item><title>6.1 Durée de vie</title><link>http://www.chicoree.fr/w/Variable#Dur.C3.A9e_de_vie_4</link><description><![CDATA[<p>Une variable globale existe du début à la fin d'un programme. Et en un seul exemplaire.
</p>]]></description></item><item><title>6.2 Portée</title><link>http://www.chicoree.fr/w/Variable#Port.C3.A9e_4</link><description><![CDATA[<p>Une variable globale peut être utilisée par n'importe quelle méthode de n'importe quel objet de n'importe quelle classe. En fait, elle peut être utilisée n'importe où dans le programme. Il est clair dans ces conditions qu'il est très difficile de contrôler l'utilisation fait d'une telle variable dans un programme un tant soit peu complexe.
</p>]]></description></item><item><title>6.3 Exemple</title><link>http://www.chicoree.fr/w/Variable#Exemple_4</link><description><![CDATA[<p>Pour illustrer la dangerosité des variables globales, nous reprenons ici l'exemple précédent, mais en utilisant une variable globale à la place de la variable de classe:
</p>]]></description></item><item><title>6.4 Utilisation</title><link>http://www.chicoree.fr/w/Variable#Utilisation_4</link><description><![CDATA[<p>Les variables globales ne servent à rien. C'est un point de vue un peu extrême – et certainement un peu faux aussi. Néanmoins, dans la pratique il y a très peu de cas où elle sont réellement nécessaires. En outre, il est toujours possible d'utiliser une variable de classe à la place d'une variable globale. Par conséquent...
</p>]]></description></item></channel></rss>
