JAVA - I
Généralités Composants élémentaires d'un programme Instructions simples 2
JAVA? Un langage de programmation (orienté objets) Une architecture basée sur une Machine Virtuelle Un ensemble très important de bibliothèques pour : la programmation d'interfaces graphiques la programmation réseau le traitement des images et du son De très nombreux d'outils En particulier ceux du kit de développement (JDK) 3
Environnement de developpement JDK JAVA Development Kit JRE = Java Runtime Environment JVM Java Virtual Machine API Java Core Compilateur (JAVAC) Java SE ou Java EE ou Java ME? Java SE = Java Platform Standard Edition Environnement pour des applications classiques (de bureau) sur les OS classiques Windows/Linux/Mac OS Java EE = Java Platform Enterprise Edition Java ME = Java Platform Micro Edition Environnement pour applications embarquées, téléphones mobiles et smartphone en particulier 4
Modèle VM - Java est portable Java Source File Hello.java javac Hello.java java Hello Java Class File Hello.class (portable byte code) JVM (Java virtual machine) Operating System 5
Autres Caractérisques Orienté objets Robuste Sécurisé Multi-threads Distribué (API réseau, applet, servlet, etc.) 6
Un exemple de code ( Hello World! ) class HelloWorld { public static void main (String args[]) { System.out.println("Hello World!"); } } 1) Compilation du programme avec javac HelloWorld.java class HelloWorld... >Javac HelloWorld.java HelloWorld.class 0010110110001110 7 (code source) (byte code) 2) Exécution : on interprète le fichier byte code > java Classe où «Classe» est le nom de la classe contenant main() par exemple: >java HelloWorld
Généralités Composants élémentaires d'un programme Généralités Commentaires Types standards Variables, Constantes, expressions Instructions simples 8
Éléments du langage JAVA Alphabet : a v D B 9 3 # ( ;! = Mots : Identificateurs i bonjour lol Réservés if while switch Des nombres 10 1e100 Spéciaux + ++ < << 9 Phrases if (salaire == 100) while (i < j)
Physionomie d un programme (I) import java.util.*; class Essai { static final int AGE_MAX = 120; un ordre d'importation permettant d'utiliser tout ce qu'il y a dans le paquet java.util 10 Ce que le programme commence par faire } public static void main (String args[]) { int age; Scanner clavier = new Scanner(System.in); } System.out.print("Quel est votre age?"); age = clavier.nextint(); System.out.println("Vous vivrez encore " + (AGE_MAX age) + "ans"); un point-virgule pour terminer les phrases
Physionomie d un programme (II) import java.util.*; class Essai { static final int AGE_MAX = 120 ; une constante AGE_MAX dont la valeur est 120 public static void main (String args[]) { int age; une variable entière age Scanner clavier = new Scanner(System.in); et de quoi lire au clavier 11 } } System.out.print("Quel est votre age?"); age = clavier.nextint(); System.out.println("Vous vivrez encore " + (AGE_MAX age) + "ans"); on lit un entier au clavier et on le range dans age on calcule et on affiche à l écran une durée de vie
Commentaires Trois formes de commentaires en java // Ceci est un commentaire sur une ligne /* Ceci est un commentaire s étalant sur plusieurs lignes */ /** Ceci est un commentaire «javadoc» s étalant lui aussi sur plusieurs lignes */ 12
Types standards
Types standards Un type définit un ensemble de valeurs et des opérations associées Types élémentaires : Booléen : boolean Caractère : char Entier : byte, short, int, long Réels : float, double Les chaînes de caractères Tableau de : [] 14
Les «booléens» deux valeurs possibles : true ou false Les opérateurs!= == différent de égalité < > <= => comparaison! négation logique && et logique ou logique 15
Les «caractères» char contient le code du caractère dans le jeu de caractères unicode un caractère se note en l'entourant d'apostrophes '0' 'A' 'a' ':' '\'' '\\' 16
Les entiers byte -128 à +127 short -32768 à +32767 int -2147483648 à 2147483647 long int -2 63 à +2 63-1 Opérateurs + - * / addition, soustraction, multiplication, division % reste de la division entière ++ -- incrémentation / décrémentation!= == différent de égalité < > <= => comparaison 17
Les réels float -3,4*10 +38 à -1,4*10-45 0 1,4*10-45 à 3,4*10 +38 double -1,7*10 +308 à -4,9*10-324 0 4,9*10-324 à 1,7*10 +308 Opérateurs + - * / addition, soustraction, multiplication, division!= == différent de égalité < > <= => comparaison 18
Chaînes de caractère : String Le type d'une chaîne de caractère est String Une chaîne de caractères est entourée de guillemets "abc" "java swing" L'opérateur + permet la concaténation de 2 String "abc"+"def" donne abcdef" Pour manipuler les chaînes de caractères il faut inclure le paquet java.lang.string 19
Variables et constantes Expressions
Variable Espace mémoire modifiable contenant une valeur typeelementaire nomvariable; int i = 5; 5? i a double a, b = 3.2; 3.2 b 21
Constante Identificateur dont la valeur ne changera jamais class Essai { static final int AGE_MAX = 120 ; static final double PI = 3.14159; public static void main (String args[]) { 22
Expression Une expression est la composition de valeurs et d opérateurs Une expression a une valeur et un type Exemples : 3.14 valeur 3.14 type double 12 + 3 valeur 15 type int 3.14+12+3 valeur 18.14 type double 12*age dépend de age 23
Évaluation d une expression (I) Respecter la priorité des opérateurs Priorité 15 Opérateurs () Sens d évaluation De gauche à droite Respecter le sens d'évaluation des opérateurs 13 12 10 * / % + - < > <= >= De gauche à droite De gauche à droite De gauche à droite 9 ==!= De gauche à droite 5 && De gauche à droite 4 De gauche à droite 24
Évaluation d une expression (II) Expression 3+2+1 3*2+1 3*(2+1) 5+3 < 3*4 A && B && C A B && C Evaluée comme ((3+2)+1) ((3*2)+1) (3*(2+1)) ((5+3) < (3*4)) ((A && B) && C) (A (B && C)) Valeur 6 7 9 1 fonction de A B C fonction de A B C 25
Généralités Composants élémentaires d'un programme Instructions simples Entrées / Sorties Affectation Comparaison 26
Entrées / Sorties Ne pas oublier d'inclure le paquet java.util.scanner Les opérations d'affichage à l'écran se font avec les fonctions print println // passage à la ligne Les opérations de saisie au clavier d'un élément de type XXX se font avec les fonctions nextxxx 27 short nextshort() int nextint() long nextlong() float nextfloat() double nextdouble() String nextline() // une chaîne de caractères
Entrées / Sorties (exemple) class Essai { public static void main (String args[]) { int poids; Scanner clavier = new Scanner(System.in); } } System.out.print("Quel est votre poids? "); poids = clavier.nextint(); System.out.println("Votre poids est de" + poids/1000. + " tonne"); 28
Instruction unique ou bloc Unique : instruction se terminant par un ; Bloc : plusieurs instructions uniques placées entre {}mais considérées comme une instruction unique System.out.println("une instruction unique"); { System.out.println("ces trois instructions uniques"); System.out.println("forment une instruction bloc"); System.out.println("et sont considérées comme une seule instruction"); } 29
Affectation de variables = L'affectation d'une valeur à une variable est réalisée par l'opérateur =!! ne pas oublier de définir les variables int a, b; a?? b a = 3; b = a; a 3 3 b 30
Exemple import java.util.*; class Essai { public static void main (String args[]) { int a, b; double r; a = 12 * 2; System.out.println(a);// affiche 24 b = 2 * a; System.out.println(b);// affiche 48 r = a / 5; System.out.println(r);// affiche 4.0 r = a / 5.; System.out.println(r);// affiche 4.8 } } 31
Comparaison de variables == La comparaison de variables est réalisée par l'opérateur == ; le résultat de la comparaison est true ou false int a = 3, b = 3; la valeur de l'expression a == b est vraie, ce qui revient à dire "les variables a et b contiennent la même valeur" La comparaison de chaînes de caractères se fait par l'intermédiaire de la fonction equals String club = "PSG"; s.equals("champion?") //comparaison du contenu 32
Exemples (manipulation de String) import java.lang.string ; // à ne pas oublier class Essai { String s = "une petite chaîne"; int lg = s.length();// lg contient la longueur de s (17) String s = "Java" + "Soft"; // s vaut "JavaSoft" // numérique vers chaine String s = String.valueOf(2 * 3.14159); // s vaut "6.28318" // chaine vers numérique int i = Integer.parseInt("123"); // i vaut 123 // extraction d'un caractère char c=s.charat(2); // c contient le caractère v 33