Variables et Expressions Déclarations de variables Une variable stocke une vale
Variables et Expressions Déclarations de variables Une variable stocke une valeur de type simple ou de type référence (vers un tableau ou un objet). Elle doit être déclarée et peut être initialisée dans le même temps. Plusieurs variables de même type peuvent être déclarées ensemble. type nomVariable [= valeur]; type nomVar1 [=val], nomVar2 [=val] ... ; Descriptions des principaux types simples Type Description Formes des litéraux int Entiers signés sur 32 bits 1, -3, -26, 2OO8975 double Nombres à virgule flottante double précision Notation scientifique possible 123.4 -26.0 1.234e2 -2.6e1 boolean Booléen true, false char Caractère ’a’, ’A’ ’\u0108’ Notations spécifiques pour certains caractères usuels Code ’\n’ ’\t’ ’\\’ ’\’’ ’\”’ ’\b’ Valeur À la ligne Tabulation Antislash Apostrophe Guillemets Backspace Expressions et opérateurs Une expression est une suite d’opérations impliquant variables, littéraux et appels de méthodes. Son type dépend des opérations et des opérandes. Listes des opérateurs avec les types possibles des opérandes du résultat Opérateurs Description Type Opérandes Type Resultat Math +, -, *, / Opérations arithmétiques int, double int, double % Reste de la division int, double int, double Logique ==, != Égalité, inégalité tout boolean <, <=, >, >= Comparaison int, double, char boolean &&, || Et, ou (logique) boolean boolean ! Non (logique) boolean boolean Binaire &, |, ^ Opérations bit à bit (et/ou/xor) int int <<, >>, >>> Décalage de bit signé à gauche et à droite et non signé à droite int int ^ Complément bit à bit int int Affectation et transtypage L’affectation stocke le résultat de l’évaluation d’une expression dans une variable en écrasant la précédente valeur. nomVariable = expression ; Syntaxe de l’affectation Le type de l’expression doit être le même que celui de la variable sinon il faut un transtypage, c’est-à-dire une conversion de type. Dans de rares cas, il peut être implicite. (type) expression Syntaxe du transtypage int i = (int)3.14 ; Exemple de transtypage explicite double d = 3 ; Exemple de transtypage implicite Notations raccourcies pour certaines affectations fréquentes var += q; c var = var + q; var -= q; c var = var - q; var *= q; c var = var * q; var /= q; c var = var / q; var++; c var = var + 1; var--; c var = var - 1; Structures de Contrôle Blocs d’instructions Description d’un bloc Syntaxe Groupement d’instructions entouré d’accolades dont les instructions sont indentées. La portée (l’utilisation possible) d’une variable commence à l’endroit où elle est déclarée et finit à la fin du bloc contenant sa déclaration. { instruction; ... } Instructions Conditionnelles Une instruction conditionnelle est un choix entre plusieurs blocs de code selon une condition. Description des instructions conditionnelles Syntaxe if Le premier bloc est exécuté si condition est true, le second sinon. Plusieurs blocs if peuvent être imbriqués. Le bloc else est optionnel. if(condition) { instruction; ... } else { instruction; ... } switch L’exécution du bloc commence à l’instruction suivant le case dont la valeur correspond à celle de variable et se termine au premier break rencontré. Si aucun case ne correspond à la valeur de variable, c’est après le default que l’exécution commence. Le type de variable est simple ou String. switch(variable) { case val1: ... break; case val2:val3: ... default: ... } Boucles Une boucle est l’exécution répétée (itération) d’un bloc de code selon une condition. Le tableau suivant répertorie les quatre boucles de JAVA. Pour des exemples, voir l’affichage des éléments d’un tableau à la page suivante. Description des boucles Syntaxe while Exécution d’un bloc tant que condition est true. while(condition) { instruction; ... } do while Exécution d’un bloc une fois puis tant que condition est true. do { instruction; ... } while(condition); for Exécution d’un bloc tant que cond est true. En général, la condition repose sur la variable initialisée à l’entrée de la boucle (init) puis mise à jour à chaque itération (maj). for(init; cond; maj) { instruction; ... } for each Exécution d’un bloc pour chaque valeur contenue dans iter (un tableau ou objet implémentant l’interface Iterable). La variable elt prend toutes les valeurs contenues dans iter successivement. for(type elt: iter) { instruction; ... } Les instructions continue et break ne sont pas indispensables et leur utilisation n’est pas recommandée. continue saute les instructions restantes dans une itération et passe à la suivante. Les mises à jour de la boucle for sont effectuées. break force la sortie d’un bloc (switch, for, while, do while). Tableaux Fonctionnement Général Un tableau contient un nombre fixe de données de même type. Une variable ne stocke jamais un tableau mais une référence vers un tableau. La création d’un tableau s’effectue en deux étapes : déclaration d’une variable stockant une référence puis allocation en mémoire d’un tableau (mot clef new). Deux syntaxes existent pour la déclaration. type[] tab; Déclaration, syntaxe 1 type tab[]; Déclaration, syntaxe 2 tab = new type[taille]; Allocation mémoire Une case d’un tableau est une variable à laquelle on accède avec un indice. La numérotation des cases commence à 0. La valeur length contient le nombre de cases d’un tableau. tab[0] = expression; Affectation du premier élément tab[tab.length-1] = expression; Affectation du dernier élément Il est possible d’allouer la mémoire et d’initialiser les éléments d’un tableau en une seule instruction avec l’une des deux notations suivantes. type[] tab = new type[] { val1, val2... }; type[] tab = { val1, val2... }; Tableau à plusieurs dimensions Un tableau peut avoir plusieurs dimensions. Pour la déclaration et l’accès aux cases, la syntaxe est similaire à celle des tableaux à une dimension. Exemple pour un tableau à deux dimensions avec toutes les lignes de même taille : type[][] tab = new type[nbLignes][nbColonnes]; tab[i][j] = expression; Un tableau à plusieurs dimensions est un tableau de tableaux. Il est donc possible de déclarer un tableau ayant des lignes de tailles différentes. Exemple d’un tableau triangulaire : type[][] tab = new type[nbLignes][]; for(int i=0; i<tab.length; i++) { tab[i] = new type[i+1]; } Affichage des éléments d’un tableau Une variable ne stocke pas un tableau mais une référence dessus. L’instruction “System.out.println( tab );“ affiche donc uniquement la référence et non les éléments du tableau. Pour afficher les éléments, on peut utiliser une boucle ou la méthode toString de la classe Arrays permettant la conversion d’un tableau en String. Affichage avec une boucle for Affichage avec une boucle while String s=””; for(int i=0; i<tab.length; i++) { s = s+tab[i].toString()+” ”; } System.out.println(s); String s=””; int i=0; while(i<tab.length) { s = s+tab[i].toString()+” ”; i++; } System.out.println(s); Affichage avec une boucle for-each Affichage par Arrays String s=”” ; for(Object t: tab) { s = s+t.toString()+” ”; } System.out.println(s); String s=Arrays.toString(tab); System.out.println(s); Programmation Objet Généralité sur les classes et objets Une classe est un moule permettant de créer des objets (instances) dont le type est une classe. Elle inclut la déclaration d’attributs, de constructeurs et de méthodes. Les modificateurs précèdant le mot clef class sont des propriétées. La visibilité restreint l’accès et final rend la classe non dérivable (voir héritage). [visibilité] [final] class NomClasse { ... } Visibilité Classe, attribut ou méthode accessible depuis private la classe uniquement (autorisé uniquement pour les classes de haut niveau, les attributs et les méthodes) non spécifiée toutes classes du package (dit «package-private») protected toutes classes du package et sous-classes public toutes classes Attributs Un attribut est une caractéristique d’un objet. Il est déclaré en début de classe. [visibilité] [static] [final] type nomAttribut ; Modificateur Propriété de l’attribut final Attribut constant static Un attribut static est associé à la classe plutôt qu’aux objets. Il a alors une valeur commune pour tous les objets de la classe. Méthodes Une méthode est un bloc d’instructions (corps d’une méthode) destiné à réaliser une opération. Elle peut recevoir des paramètres et renvoyer une valeur de retour. Son nom et le type de ses paramètres forment sa signature. Le type de la valeur de retour est void si la méthode ne renvoie rien. [visibilité] [static] [final] type nomMethode([type param...]){ instructions ; } Modificateur Propriété de la méthode final Méthode non surchargeable (voir héritage) static Méthode de classe. Elle ne peut utilser que des attributs static. Le mot clef return met fin à l’exécution de la méthode. Si une valeur de retour est attendue, elle doit être indiquée après return. L’appel d’une méthode de classe (static) est préfixé par le nom de la classe. NomClasse.nomMethode( val1, val2... ) ; L’appel d’une méthode d’instance (abscence du modificateur static) est préfixé par un objet. Dans le corps de celle-ci, cet objet est désigné par this. nomObjet.nomMethode( val1, val2... ) ; Méthode Main Une classe est exécutable si elle inclut une méthode main. C’est le point d’entrée du programme. Les arguments donnés au programme lors de son lancement sont transmis, sous forme d’un tableau de String, en paramètre de la méthode main. public static void main( String[] args ) { ... } Programmation Objet (suite) Constructeur et instanciation Un constructeur permet d’initialiser des instances. C’est une méthode portant le nom de la classe et ne renvoyant rien uploads/s3/ memento-2014-a4.pdf
Documents similaires










-
25
-
0
-
0
Licence et utilisation
Gratuit pour un usage personnel Attribution requise- Détails
- Publié le Jan 31, 2022
- Catégorie Creative Arts / Ar...
- Langue French
- Taille du fichier 0.4872MB