/** 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);
}
}