/** Attention : ce code source contient des caractères UTF-8 (le caractère * grec alpha). Pour compiler ce code, il est donc nécessaire de préciser * le codage employé via la ligne de commande (pour les utilisateurs d'eclipse * consulter le web) : * javac -encoding utf-8 Cours1.java * @author Jean-Baptiste Yunès * @date Février 2013 */ public class Cours1 { // Une variable statique est une variable donc la // durée de vie est exactement celle de l'exécution du programme. // Elle existe au démarrage et disparaît à la fin de l'exécution. static public int uneVariable; // n est un paramètre (de type entier) dont la durée de vie est // celle de l'exécution de la fonction. Elle est créée à chaque fois qu'on // appelle la fonction et elle disparaît lorsque l'appel termine. public static int somme(int n) { // la variable somme est une variable locale, dont la durée de vie // est celle de l'exécution de la fonction. Elle est créée à chaque // appel et disparaît lorsqu'il termine. int somme = 0; // la variable i est de même nature que n et somme for (int i=0; i<n; i++) { somme += i; } return somme; } public static void main(String []args) { uneVariable = 100; // la variable i est une variable locale à la fonction main, sa durée // de vie est celle de l'appel à main. for (int i=0; i<10; i++) { System.out.println("coucou"); } System.out.println("Resultat = " + somme(10)); System.out.println("Resultat = " + somme(100)); // La variable tableau (qui n'est pas un tableau!!!!) est une variable // locale à la fonction main dont la durée de vie est celle de l'appel // à la fonction main. Elle est créée à chaque appel à main et détruite // lorsque l'appel est terminé (i.e. lorsqu'on sort de cet appel à // main). Cette variable est très particulière, car son contenu est // nécessairement une adresse mémoire (mais ces valeurs particulières // ne peuvent être manipulées directement). int []tableau; // l'instruction new int[50] réserve/créé (entre autres) en mémoire // une zone contiguë permettant de stocker 50 int (donc de longueur // 50*|int|. Cette instruction a pour valeur (renvoie) l'adresse // en mémoire du premier octet du premier des 50 entiers réservés. // Si cette adresse est α, la variable tableau contiendra la valeur α. tableau = new int[50]; // Lorsqu'on affiche tableau (attention on n'affiche pas le tableau // d'entiers) la machine Java affiche [I@α (où α est remplacé par // le codage hexadécimal de l'adresse). [ signifiant que la valeur α // désigne l'adresse d'un tableau et I que les valeurs du tableau // sont des ints (des entiers Java). System.out.println(tableau); } }