JAVA PROGRAMMATION OBJET Abdellatif HAIR Université Sultan Moulay Slimane Faculté des Sciences et Techniques B.P. 523, Béni-Mellal, MAROC
JAVA : LES BASES
IDENTIFICATEURS, INSTRUCTIONS ET BLOCS La syntaxe et les instructions de base en JAVA sont très proches de celles du C/C++ : Les identificateurs commencent par une lettre ou par _ Attention, Java distingue minuscules et majuscules Les espaces entre instructions sont ignorés Les instructions sont OBLIGATOIREMENT terminées par un point-virgule ; (cet oubli est une erreur fréquente de compilation) Un bloc ou séquence est un regroupement ordonné d'instructions Un bloc est délimité par un couple d'accolades {...}
LES COMMENTAIRES Java supporte trois types de commentaires : Les caractères "//" définissent un commentaire sur une et une seule ligne qui s étend jusqu au retour chariot de fin de ligne Les signes "/*" et "*/" peuvent être utilisés pour placer des commentaires sur plusieurs lignes Les lignes de code qui commencent par les caractères "/**" et se terminent par "*/", contiennent des commentaires qui seront automatiquement insérés dans un document HTML lors de l exécution de javadoc
LES TYPE DE DONNÉES PRÉDÉFINIS Nombres entiers : byte -2^7, (2^7 )-1-128,127 short -2^15, (2^15)-1-32768,32767 int -2^31, (2^31)-1-2147483648, 2147483647 long -2^63, (2^63)-1 19223372036854775808, 9223372036854775807 Les entiers peuvent être exprimés en octal (0323), en décimal (311) ou en hexadécimal (0x137)
LES TYPE DE DONNÉES PRÉDÉFINIS Nombres réels : float simple précision sur 32 bits 1.4023984 e-45 3.40282347 e38 double double précision sur 64 bits 4.94065645841243544 e-324 1.79769313486231570 e308 Représentation des réels dans le standard IEEE 754. Un suffixe f ou d après une valeur numérique permet de spécifier le type. Exemples : double x = 145.56d ; float y = 23.4f ; float f = 23.65 ; // Erreur
LES TYPE DE DONNÉES PRÉDÉFINIS boolean char Valeurs true et false Un entier non nul est également assimilé à true Un entier nul est assimilé à false Une variable de type char contient un seul caractère codé sur 16 bits (jeu de caractères 16 bits Unicode contenant 34168 caractères). Des caractères d'échappement existent : \b retour arrière \t Tabulation horizontale \n saut de ligne \f saut de page \r retour chariot \" Guillemet \' Apostrophe \xdd Valeur hexadécimale \\ BackSlash \Oddd Valeur octale \udddd Caractère Unicode dddd hexadécimale
LES TYPE DE DONNÉES PRÉDÉFINIS Chaînes de caractères Les chaînes de caractères sont manipulées par la classe String (ce n'est donc pas un type de données) Exemples : String str = "exemple de chaîne de caractères" ; String chaine = "Le soleil " + "brille" ; // Opérateur de concaténation
LES TYPE DE DONNÉES PRÉDÉFINIS Les tableaux tableaux peuvent être déclarés suivant les syntaxes suivantes : Exemple type [ ] nom ; type nom [ ] ; int table [ ] ; double [ ] d1,d2 ; Pas de tableau statique La taille d'un tableau est allouée dynamiquement par l opérateur new table = new int [10] ; int table2 [ ] = new int [20] ; int table3 [ ] = {1,2,3,4,5} ;
LES TYPE DE DONNÉES PRÉDÉFINIS Les tableaux La taille n'est pas modifiable et peut être consultée par la propriété length System.out.println (table3.length) ; int [ ] [ ] Matrice = new int [10][20] ; System.out.println (Matrice.length) ; // 1ère dimension System.out.println (Matrice[0].length) ;//2èmedimension
LES OPÉRATEURS Les opérateurs Java sont voisins du C Opérateur d affectation symbole description arité exemple opérateur d affectation = affectation 2 x = 2 = soustraction et affectation += addition et affectation 2 x = 2 2 x += 2 On dispose du raccourci : x = y = z = 2
LES OPÉRATEURS Opérateurs arithmétiques à deux opérandes symbole description arité exemple opérateurs arithmétiques à deux opérande soustraction 2 y x * multiplication 2 3 * x / division 2 4 / 2 % modulo (reste de la division) 2 5 % 2 Il n existe pas en Java d opérateur d exponentiation. Pour effectuer une exponentiation, il convient d utiliser la fonction pow(double a, double b) de la classe java.lang.math La division des entiers fournit un résultat tronqué et non arrondi
LES OPÉRATEURS Opérateurs à un opérande symbole description arité exemple opérateurs à un opérande opposé 1 x ++ pré-incrémentation 1 ++x ++ postincrémentation 1 x++ -- pré-décrémentation 1 --x -- postdécrémentation 1 x--
Opérateurs relationnels LES OPÉRATEURS symbole description arité exemple opérateurs relationnels == équivalent 2 x == 0 < plus petit que 2 x < 2 > plus grand que 2 x > 2 <= plus petit ou égal 2 x <= 3 >= plus grand ou égal 2 x >= 3!= non équivalent 2 a!= b
Opérateurs logiques LES OPÉRATEURS symbole description arité exemple Opérateurs logiques && et 2 a && b ou 2 a b! non 1!a L évaluation des expressions logiques est stoppées dès lors que le résultat est déterminé L évaluation partielle optimise le code mais peut avoir des effets indésirables Une manière de forcer l évaluation consiste à utiliser les opérateurs d arithmétique binaire
LES OPÉRATEURS Opérateurs d arithmétique binaire symbole description arité exemple Opérateurs d arithmique binaire & et 2 a & b ou 2 a b ^ ou exclusif 2 a ^ b ~ non 1 ~a << décalage à gauche 2 a << 2 >> décalage à droite 2 b >> 2 >>> décalage à droite sans extension du signe 2 b >>> 2
LES OPÉRATEURS Opérateurs d arithmétique binaire Les opérateurs d arithmétiques binaires agissent au niveau des bits de données, sans tenir compte de ce qu ils représentent Rappelons que le bit de signe (des types entiers) est le bit de poids fort On peut utiliser les opérateurs d arithmétique binaire avec des valeurs logiques, qui sont des valeurs sur 1 bit. L intérêt de cette possibilité est que, s agissant d opérateurs arithmétiques, ils sont toujours évalués
LES OPÉRATEURS Opérateur à trois opérandes symbole description arité exemple opérateur à trois opérandes? : condition? vrai : faux 3 y < 5? 4 * y : 2 * y Si condition est vrai, alors on retourne l évaluation de l expression vrai, sinon on retourne celle de faux.
LES STRUCTURES DE CONTRÔLE Les structures de contrôle sont presque les mêmes que celles utilisées en C ou en C++. On les rappelle ci-dessous en précisant les spécificités Java. structure de contrôle retour d une méthode syntaxe return ; return (type de retour) ; commentaires cas d une méthode void
LES STRUCTURES DE CONTRÔLE Structure de contrôle instruction conditionnelle if Syntaxe if (expression) instruction ; if (expression) {bloc d instructions } Commentaires les parenthèses sont obligatoire en Java autour de l expression booléenne. De même le point-virgule est obligatoire en fin de bloc.
LES STRUCTURES DE CONTRÔLE structure de contrôle syntaxe commentaires instruction conditionnelle else instruction conditionnelle else if if (expression) instruction ; else instruction ; if (expression) {bloc d instructions} else {bloc d instructions} if (expression) {bloc d instructions} else if {bloc d instructions} else if {bloc d instructions} else {bloc d instructions} Il s agit en fait d une structure de contrôle à part entière écrite en deux mots!
LES STRUCTURES DE CONTRÔLE structure de contrôle syntaxe la boucle for for(initialisation ; test ; incrémentation) {bloc d instructions} utilisation de break et continue dans break ; commentaires la partie initialisation se compose d une ou plusieurs initialisations (séparées par des virgules). La partie test est une expression booléenne. La partie incrémentation peut contenir plusieurs instructions séparées par des virgules. Interruption de l itération en cours et passage à l instruction suivant la boucle. les boucles continue ; Interruption de l itération en cours et retour au début de la boucle avec exécution de la partie incrémentation.
LES STRUCTURES DE CONTRÔLE structure de contrôle l instruction while l instruction switch syntaxe while (expression booléenne) {bloc d instructions} switch (variable) case valeur1 : instructions1 ; case valeur2 : instructions2 ; default : instructions ; commentaires Les bloc sont délimités par deux instructions case! Lorsqu une égalité est trouvée, le bloc d instruction correspondant est exécuté, ainsi que tous les blocs suivant! Pour qu un seul bloc ne soit exécuté, il faut utiliser explicitement l instruction break.