1/55 Génie Logiciel 1 - Présentation du langage Idir AIT SADOUNE CentraleSupélec - Département Informatique 3, rue Joliot-Curie, 91192 Gif-sur-Yvette cedex <http://idir.aitsadoune.free.fr> <idir.aitsadoune@centralesupelec.fr> Année scolaire 2015-2016, Séquence 4
2/55 Plan
3/55 Plan
/55 Généralités est un langage de programmation informatique développé par Sun Microsystems en 1995
4/55 Généralités est un langage de programmation informatique développé par Sun Microsystems en 1995 et racheté en 2009 par Oracle.
5/55 Généralités est un langage de programmation impératif et orienté objet (en tout est objet sauf les types primitifs).
5/55 Généralités est un langage de programmation impératif et orienté objet (en tout est objet sauf les types primitifs). Langage impératif un programme est une séquences d instructions exécutées pour modifier des (état du programme).
5/55 Généralités est un langage de programmation impératif et orienté objet (en tout est objet sauf les types primitifs). Langage impératif un programme est une séquences d instructions exécutées pour modifier des (état du programme). Langage objet voir le prochain chapitre
/55 Généralités permet de développer différents types d applications
/55 Généralités permet de développer différents types d applications des applications avec des interfaces graphique (bibliothèque AWT/Swing)
6/55 Généralités permet de développer différents types d applications des applications avec des interfaces graphique (bibliothèque AWT/Swing) des applications client-serveur (technologies web, servlets, applets)
6/55 Généralités permet de développer différents types d applications des applications avec des interfaces graphique (bibliothèque AWT/Swing) des applications client-serveur (technologies web, servlets, applets) des applications lourdes (Jude, Oracle SQL Worksheet, etc.)
/55 Généralités permet de développer différents types d applications des applications avec des interfaces graphique (bibliothèque AWT/Swing) des applications client-serveur (technologies web, servlets, applets) des applications lourdes (Jude, Oracle SQL Worksheet, etc.) des applications pour appareils mobiles/embarqués (J2ME)
/55 Généralités permet de développer différents types d applications des applications avec des interfaces graphique (bibliothèque AWT/Swing) des applications client-serveur (technologies web, servlets, applets) des applications lourdes (Jude, Oracle SQL Worksheet, etc.) des applications pour appareils mobiles/embarqués (J2ME) des applications pour l entreprise (J2EE)
6/55 Généralités permet de développer différents types d applications des applications avec des interfaces graphique (bibliothèque AWT/Swing) des applications client-serveur (technologies web, servlets, applets) des applications lourdes (Jude, Oracle SQL Worksheet, etc.) des applications pour appareils mobiles/embarqués (J2ME) des applications pour l entreprise (J2EE) et d autres...
Les outils nécessaires I Les programmes écrits en sont portables sur différents systèmes d exploitation. Cette portabilité est assurée par la machine virtuelle (JVM). 7/55
Les outils nécessaires I Les programmes écrits en sont portables sur différents systèmes d exploitation. Cette portabilité est assurée par la machine virtuelle (JVM). I JRE ( Runtime Environment) : implémente la machine virtuelle de (JVM) 7/55
Les outils nécessaires I Les programmes écrits en sont portables sur différents systèmes d exploitation. Cette portabilité est assurée par la machine virtuelle (JVM). 7/55 I JRE ( Runtime Environment) : implémente la machine virtuelle de (JVM) I JDK ( Development Kit) : offre des outils pour développer, compiler, débuguer... des applications
8/55 Les outils nécessaires www.oracle.com/technetwork/java/javase/downloads/
9/55 Plan
10/55 Les outils de développement Il existe plusieurs environnements supportant les développements
1/55 Eclipse www.eclipse.org Eclipse est un Environnement de Développement Intégré (IDE) Open source Ecrit en (nécessite une JRE pour s exécuter) Extensible grâce au mécanisme de plugins
11/55 Eclipse www.eclipse.org Eclipse est un Environnement de Développement Intégré (IDE) Open source Ecrit en (nécessite une JRE pour s exécuter) Extensible grâce au mécanisme de plugins Eclipse permet de développer des applications informatiques Prévu pour et d autres besoins et langages de programmation
Eclipse : création d un nouveau projet 12/55 www.youtube.com/watch?v=zgfodxt9it4
13/55 Plan
4/55 Premier programme en 1 p u b l i c c l a s s H e l l o W o r l d { 2 3 p u b l i c s t a t i c v o i d main ( S t r i n g [ ] a r g s ) { 4 // I n s e r e z v o t r e code i c i 5 System. out. p r i n t l n ( " H e l l o World! " ) ; 6 } 7 } Un contient au moins une classe (mot clef class).
14/55 Premier programme en 1 p u b l i c c l a s s H e l l o W o r l d { 2 3 p u b l i c s t a t i c v o i d main ( S t r i n g [ ] a r g s ) { 4 // I n s e r e z v o t r e code i c i 5 System. out. p r i n t l n ( " H e l l o World! " ) ; 6 } 7 } Un contient au moins une classe (mot clef class). Le programme principal (le point de départ de l exécution) se trouve dans la fonction/méthode main.
Programme plus complet en 1 i m p o r t j a v a. u t i l. S c a n n e r ; 2 3 p u b l i c c l a s s F a c t o r i e l l e { 4 5 p u b l i c s t a t i c v o i d main ( S t r i n g [ ] a r g s ) { 6 // D e c l a r a t i o n d e s v a r i a b l e s 7 i n t n ; 8 i n t f a c t ; 9 i n t i ; 10 // L e c t u r e c l a v i e r d un e n t i e r 11 S c a n n e r s i n = new S c a n n e r ( System. i n ) ; 12 n = s i n. n e x t I n t ( ) ; 13 // i n i t i a l i s a t i o n du r e s u l t a t 14 f a c t = 1 ; 15 f o r ( i=1 ; i <=n ; i++) { 16 f a c t = f a c t i ; 17 } 18 // a f f i c h a g e du r e s u l t a t 19 System. out. p r i n t l n ( f a c t ) ; 20 s i n. c l o s e ( ) ; 21 } 22 } 15/55
16/55 Commentaires Commenter un programme = Expliquer en langage naturel ce que le code fait Doit expliquer le raisonnement qui a aboutit au programme Ne doit pas alourdir le code 1 // commentaire s u r une s e u l e l i g n e 2 3 / 4 commentaire 5 s u r p l u s i e u r s l i g n e s 6 /
16/55 Commentaires Commenter un programme = Expliquer en langage naturel ce que le code fait Doit expliquer le raisonnement qui a aboutit au programme Ne doit pas alourdir le code 1 // commentaire s u r une s e u l e l i g n e 2 3 / 4 commentaire 5 s u r p l u s i e u r s l i g n e s 6 / Essentiel pour : Documenter un programme Travailler en équipe Rendre un programme réutilisable
Eclipse : création d une nouvelle classe 17/55 www.youtube.com/watch?v=3kucdokputq
Eclipse : exécution d un 18/55 www.youtube.com/watch?v=w852ifivyzi
19/55 Plan
20/55 ordinateur
1/55 Mémoire La mémoire est un ensemble de cases/mots mémoires
21/55 Mémoire La mémoire est un ensemble de cases/mots mémoires Les données et les instructions d un programme sont stockés dans les cases mémoires
21/55 Mémoire La mémoire est un ensemble de cases/mots mémoires Les données et les instructions d un programme sont stockés dans les cases mémoires Une donnée est représentée en programmation par une variable
2/55 La déclaration d une variable Création et nommage d une nouvelle variable 1 <Type de l a v a r i a b l e > <Nom de l a v a r i a b l e > ;
2/55 La déclaration d une variable Création et nommage d une nouvelle variable 1 <Type de l a v a r i a b l e > <Nom de l a v a r i a b l e > ; Fonctionnement 1. Réserve une case dans la mémoire pour stocker la valeur
2/55 La déclaration d une variable Création et nommage d une nouvelle variable 1 <Type de l a v a r i a b l e > <Nom de l a v a r i a b l e > ; Fonctionnement 1. Réserve une case dans la mémoire pour stocker la valeur 2. Donne un nom (identificateur) à cette case mémoire pour y accéder Stocker une valeur Lire la valeur stockée
23/55 La déclaration d une variable Contraintes Contient uniquement des lettres, des chiffres ou le caractère _ Commence par une lettre ou le caractère _ Pas d accent Ne doit pas être un mot clef du langage
23/55 La déclaration d une variable Contraintes Contient uniquement des lettres, des chiffres ou le caractère _ Commence par une lettre ou le caractère _ Pas d accent Ne doit pas être un mot clef du langage Conventions Première lettre est une minuscule Si plusieurs mots : mots accolés les uns aux autres les mots après le premier commencent par une majuscule Le nom désigne explicitement le contenu de la variable
23/55 La déclaration d une variable Contraintes Contient uniquement des lettres, des chiffres ou le caractère _ Commence par une lettre ou le caractère _ Pas d accent Ne doit pas être un mot clef du langage Conventions Première lettre est une minuscule Si plusieurs mots : mots accolés les uns aux autres les mots après le premier commencent par une majuscule Le nom désigne explicitement le contenu de la variable Exemples 1 i n t n o m b r e D e P a r t i c i p a n t s ; 2 i n t v a l e u r 2 ;
24/55 L affectation Initialisation ou modification de la valeur d une variable 1 <Nom de l a v a r i a b l e > = <E x p r e s s i o n > ;
24/55 L affectation Initialisation ou modification de la valeur d une variable 1 <Nom de l a v a r i a b l e > = <E x p r e s s i o n > ; Attention = n est pas l opérateur d égalité
24/55 L affectation Initialisation ou modification de la valeur d une variable 1 <Nom de l a v a r i a b l e > = <E x p r e s s i o n > ; Attention = n est pas l opérateur d égalité Déroulement 1. Evaluation de l expression 2. Stockage du résultat dans la variable
24/55 L affectation Initialisation ou modification de la valeur d une variable 1 <Nom de l a v a r i a b l e > = <E x p r e s s i o n > ; Attention = n est pas l opérateur d égalité Déroulement 1. Evaluation de l expression 2. Stockage du résultat dans la variable Exemples 1 n o m b r e D e P a r t i c i p a n t s = 25 ; 2 v a l e u r 2 = 2 5+10 ;
24/55 L affectation Initialisation ou modification de la valeur d une variable 1 <Nom de l a v a r i a b l e > = <E x p r e s s i o n > ; Attention = n est pas l opérateur d égalité Déroulement 1. Evaluation de l expression 2. Stockage du résultat dans la variable Exemples 1 n o m b r e D e P a r t i c i p a n t s = 25 ; 2 v a l e u r 2 = 2 5+10 ; affectation simultanée 1 i n t n o m b r e D e P a r t i c i p a n t s = 25 ;
25/55 Les types en Attention En, une variable ne peut contenir que des valeurs du type donné!
25/55 Les types en Attention En, une variable ne peut contenir que des valeurs du type donné! Les de type numérique 1 // Le t y p e b y t e ( 1 o c t e t ) l e s e n t i e r s 2 b y t e t e m p e r a t u r e = 64 ; 3 // Le t y p e s h o r t ( 2 o c t e t s ) l e s e n t i e r s 4 s h o r t v i t e s s e M a x = 32000 ; 5 // Le t y p e i n t ( 4 o c t e t s ) l e s e n t i e r s 6 i n t t e m p e r a t u r e S o l e i l = 15600000 ; 7 // Le t y p e l o n g ( 8 o c t e t s ) l e s e n t i e r s 8 l o n g a n n e e L u m i e r e = 9460700000000000L ; 9 // Le t y p e f l o a t ( 4 o c t e t s ) l e s nombres a v e c une v i r g u l e f l o t t a n t e 10 f l o a t p i = 3. 141592653 f ; 11 // Le t y p e d o u b l e ( 8 o c t e t s ) l e s nombres a v e c une v i r g u l e f l o t t a n t e 12 d o u b l e d i v i s i o n = 0. 333333333333333333333333333333333333333333334d ;
26/55 Les types en Les stockant un caractère 1 c h a r c a r a c t e r e ; 2 c a r a c t e r e = A ;
26/55 Les types en Les stockant un caractère 1 c h a r c a r a c t e r e ; 2 c a r a c t e r e = A ; Les de type booléen 1 b o o l e a n q u e s t i o n ; 2 q u e s t i o n = t r u e ;
26/55 Les types en Les stockant un caractère 1 c h a r c a r a c t e r e ; 2 c a r a c t e r e = A ; Les de type booléen 1 b o o l e a n q u e s t i o n ; 2 q u e s t i o n = t r u e ; Les de type String 1 S t r i n g p h r a s e ; 2 p h r a s e = " T i t i e t G r o s m i n e t " ; 3 4 S t r i n g s t r = new S t r i n g ( ) ; 5 s t r = "Une a u t r e c h a i n e de c a r a c t e r e s " ; 6 7 S t r i n g c h a i n e = new S t r i n g ( " Et une de p l u s! " ) ;
27/55 Les expressions en Les opérateurs arithmétiques + : additionner deux numériques - : soustraire deux numériques * : multiplier deux numériques / : diviser deux numériques % : renvoyer le reste de la division entière
27/55 Les expressions en Les opérateurs arithmétiques + : additionner deux numériques - : soustraire deux numériques * : multiplier deux numériques / : diviser deux numériques % : renvoyer le reste de la division entière Exemples 1 i n t x, y, z ; // D e c l a r a t i o n d e s v a r i a b l e s 2 3 x = 1 + 3 ; // x v a u t 4 4 y = 2 6 ; // y v a u t 12 5 z = y / x ; // z v a u t 3 6 z = ( 1+3 ) / ( 2 6 ) ; // z v a u t 3 7 x = 5 % 2 ; // x v a u t 1 8 y = 99 % 8 ; // y v a u t 3 9 z = x % y ; // z v a u t 1 10 z = ( 5%2 )%( 99%8 ) ; // z v a u t 1
28/55 Le transtypage Attention L expression doit être du même type que la variable!
28/55 Le transtypage Attention L expression doit être du même type que la variable! Le transtypage consiste à convertir un type de données en un autre 2 cas de figure : 1. Sans perte d information 2. Avec perte d information
28/55 Le transtypage Attention L expression doit être du même type que la variable! Le transtypage consiste à convertir un type de données en un autre 2 cas de figure : 1. Sans perte d information 2. Avec perte d information Sans perte d information 1 i n t i = 3 ; 2 d o u b l e d = i ; // d v a u t 3. 0
28/55 Le transtypage Attention L expression doit être du même type que la variable! Le transtypage consiste à convertir un type de données en un autre 2 cas de figure : 1. Sans perte d information 2. Avec perte d information Sans perte d information 1 i n t i = 3 ; 2 d o u b l e d = i ; // d v a u t 3. 0 Avec perte d information 1 <Nouveau Type> <V a r i a b l e > = (<Nouveau Type>) <E x p r e s s i o n > ; 2 3 d o u b l e d = 3. 4 ; 4 i n t i = ( i n t ) d ; // i v a u t 3
29/55 Les constantes La déclaration d une constante 1 s t a t i c f i n a l <t y p e C o n s t a n t e > <nomconstante> = <v a l e u r C o n s t a n t e >;
29/55 Les constantes La déclaration d une constante 1 s t a t i c f i n a l <t y p e C o n s t a n t e > <nomconstante> = <v a l e u r C o n s t a n t e >; Exemple 1 s t a t i c f i n a l d o u b l e RATE = 0. 025 ;
30/55 Plan
31/55 Instructions de lecture La lecture avec la classe Scanner 1 // C e c i i m p o r t e l a c l a s s e S c a n n e r du package j a v a. u t i l 2 i m p o r t j a v a. u t i l. S c a n n e r ; 3 4 p u b l i c c l a s s Main { 5 6 p u b l i c s t a t i c v o i d main ( S t r i n g [ ] a r g s ) { 7 S c a n n e r s c = new S c a n n e r ( System. i n ) ; 8 S t r i n g s t r = s c. n e x t L i n e ( ) ; 9 i n t i = s c. n e x t I n t ( ) ; 10 d o u b l e d = s c. n e x t D o u b l e ( ) ; 11 l o n g l = s c. nextlong ( ) ; 12 b y t e b = s c. n e x t B y t e ( ) ; 13 // Etc. 14 } 15 }
32/55 Instructions d affichage L affichage avec la méthode System.out.print 1 i m p o r t j a v a. u t i l. S c a n n e r ; 2 3 p u b l i c c l a s s Main { 4 p u b l i c s t a t i c v o i d main ( S t r i n g [ ] a r g s ) { 5 S c a n n e r s c = new S c a n n e r ( System. i n ) ; 6 System. out. p r i n t ( " S a i s i s s e z un e n t i e r : " ) ; 7 i n t i = s c. n e x t I n t ( ) ; 8 System. out. p r i n t l n ( " Vous a v e z s a i s i : " + i ) ; 9 //On v i d e l a l i g n e 10 s c. n e x t L i n e ( ) ; 11 System. out. p r i n t ( " S a i s i s s e z une c h a i n e : " ) ; 12 S t r i n g s t r = s c. n e x t L i n e ( ) ; 13 System. out. p r i n t l n ( " Vous a v e z s a i s i : " + s t r ) ; 14 } 15 }
32/55 Instructions d affichage L affichage avec la méthode System.out.print 1 i m p o r t j a v a. u t i l. S c a n n e r ; 2 3 p u b l i c c l a s s Main { 4 p u b l i c s t a t i c v o i d main ( S t r i n g [ ] a r g s ) { 5 S c a n n e r s c = new S c a n n e r ( System. i n ) ; 6 System. out. p r i n t ( " S a i s i s s e z un e n t i e r : " ) ; 7 i n t i = s c. n e x t I n t ( ) ; 8 System. out. p r i n t l n ( " Vous a v e z s a i s i : " + i ) ; 9 //On v i d e l a l i g n e 10 s c. n e x t L i n e ( ) ; 11 System. out. p r i n t ( " S a i s i s s e z une c h a i n e : " ) ; 12 S t r i n g s t r = s c. n e x t L i n e ( ) ; 13 System. out. p r i n t l n ( " Vous a v e z s a i s i : " + s t r ) ; 14 } 15 } 1 >> S a i s i s s e z un e n t i e r : 12 2 >>Vous a v e z s a i s i : 12 3 >> S a i s i s s e z une c h a i n e : C e n t r a l e S u p e l e c 4 >>Vous a v e z s a i s i : C e n t r a l e S u p e l e c
33/55 Plan
34/55 Les expressions booléennes Les opérateurs de comparaison ==,! =, <, >, <=, >= génèrent des booleans à partir de comparaison de valeurs
34/55 Les expressions booléennes Les opérateurs de comparaison ==,! =, <, >, <=, >= génèrent des booleans à partir de comparaison de valeurs Les opérateurs booléans A B = A or B (OR logique) A && B = A and B (AND logique)! A = not A (NOT logique)
34/55 Les expressions booléennes Les opérateurs de comparaison ==,! =, <, >, <=, >= génèrent des booleans à partir de comparaison de valeurs Les opérateurs booléans A B = A or B (OR logique) A && B = A and B (AND logique)! A = not A (NOT logique) Attention A et B doivent être des expressions générant des booléans
35/55 Instruction : if Bloc d instruction exécuté si la condition est vraie, sinon un autre est exécuté 1 i f ( c o n d i t i o n ) { 2 commande1 ; 3 } 1 i f ( c o n d i t i o n ) { 2 commande1 ; 3 } 4 e l s e { 5 commande2 ; 6 } 1 i f ( c o n d i t i o n 1 ) { 2 commande1 ; 3 } 4 e l s e i f ( c o n d i t i o n 2 ) { 5 commande2 ; 6 } 7 e l s e { 8 commande3 ; 9 }
36/55 Instruction : if Exemple 1 i f ( i < 0 ) { 2 System. out. p r i n t l n ( "Ce nombre e s t n e g a t i f! " ) ; 3 } 4 e l s e { 5 i f ( i == 0 ) 6 System. out. p r i n t l n ( "Ce nombre e s t n u l! " ) ; 7 e l s e 8 System. out. p r i n t l n ( "Ce nombre e s t p o s i t i f! " ) ; 9 }
37/55 Plan
8/55 Instructions de boucle Répéter un bloc d instruction un certain nombre de fois
8/55 Instructions de boucle Répéter un bloc d instruction un certain nombre de fois Une boucle s exécute tant qu une condition est remplie
8/55 Instructions de boucle Répéter un bloc d instruction un certain nombre de fois Une boucle s exécute tant qu une condition est remplie En, il existe trois formes de boucles : 1. boucle while 2. boucle do while 3. boucle for
39/55 La boucle while Permet d exécuter un bloc d instruction tant qu une condition est vraie
39/55 La boucle while Permet d exécuter un bloc d instruction tant qu une condition est vraie 1 w h i l e ( c o n d i t i o n ) { 2 i n s t r u c t i o n 1 ; 3 } 4 i n s t r u c t i o n 2 ; 1. On évalue condition 1.1 Si condition est vraie, on exécute le bloc instruction1 et on recommence au niveau de condition (aller à 1) 1.2 Si condition est fausse, on saute à instruction2
40/55 La boucle while Exemple 1 S c a n n e r s c = new S c a n n e r ( System. i n ) ; 2 i n t x = s c. n e x t I n t ( ) ; 3 4 i n t i = 1 ; 5 w h i l e ( ( i+1 ) ( i+1 ) <= x ) { 6 i = i + 1 ; 7 } 8 System. out. p r i n t ( " La r a c i n e c a r r e e e n t i e r e " ) ; 9 System. out. p r i n t l n ( " de " + x + " e s t : " + i ) ;
41/55 La boucle do... while Permet d exécuter une première fois un bloc d instruction, puis de le répéter tant qu une condition est vraie.
41/55 La boucle do... while Permet d exécuter une première fois un bloc d instruction, puis de le répéter tant qu une condition est vraie. 1 do { 2 i n s t r u c t i o n 1 ; 3 } w h i l e ( c o n d i t i o n ) 4 i n s t r u c t i o n 2 ; 1. On exécute le bloc instruction1 2. On évalue la condition 2.1 Si condition est vraie, on recommence au niveau du bloc instruction1 (aller à 1) 2.2 Si condition est fausse, on saute à instruction2
42/55 La boucle do... while Exemple 1 i n t c p t = 3 ; 2 3 do { 4 c p t = c p t 1 ; 5 } w h i l e ( c p t >= 0 ) ;
43/55 La boucle for Permet d exécuter un bloc d instruction tant qu une condition est vraie La condition implique une variable de contrôle modifiée à chaque itération
43/55 La boucle for Permet d exécuter un bloc d instruction tant qu une condition est vraie La condition implique une variable de contrôle modifiée à chaque itération 1 f o r ( i n i t ; c o n d i t i o n ; maj ) { 2 i n s t r u c t i o n 1 ; 3 } 4 i n s t r u c t i o n 2 ; 1. On initialise la variable de contrôle avec init 2. On évalue la condition 2.1 Si condition est vraie, on exécute instruction1 puis maj et on va à l étape 2 2.2 Si condition est fausse, on saute à instruction2
44/55 La boucle for Exemple 1 S c a n n e r s c = new S c a n n e r ( System. i n ) ; 2 i n t n = s c. n e x t I n t ( ) ; 3 4 i n t f a c t = 1 ; 5 f o r ( i n t i=1 ; i <=n ; i++) { 6 f a c t = f a c t i ; 7 } 8 System. out. p r i n t l n ( f a c t ) ;
45/55 Les raccourcis pour l affectation Les opérateurs arithmétiques somme += nb somme = somme + nb fact *= nb fact = fact * nb solde -= nb solde = solde - nb
45/55 Les raccourcis pour l affectation Les opérateurs arithmétiques somme += nb somme = somme + nb fact *= nb fact = fact * nb solde -= nb solde = solde - nb Incrémentation et décrémentation x++ x+= 1 x = x + 1 y- - y-= 1 y = y - 1
46/55 Plan
47/55 Définition Tableau Ensemble fini de de même type reprérées par des indices Ces s appellent éléments de tableau indice 0 1 i n-1 11 3 21 3 50 35 43 élément
48/55 Déclaration des tableaux en Un tableau occupe un espace mémoire désigné par une où plusieurs Ces sont des références au tableau
48/55 Déclaration des tableaux en Un tableau occupe un espace mémoire désigné par une où plusieurs Ces sont des références au tableau Déclaration d une variable référence à un tableau 1 i n t [ ] montableau ; montableau
48/55 Déclaration des tableaux en Un tableau occupe un espace mémoire désigné par une où plusieurs Ces sont des références au tableau Déclaration d une variable référence à un tableau 1 i n t [ ] montableau ; Création du tableau et liaison avec la référence 1 montableau = new i n t [ 4 ] ; montableau
49/55 Manipulation des tableaux en Initialisation d un tableau Par défaut : 0, 0.0 ou false
49/55 Manipulation des tableaux en Initialisation d un tableau Par défaut : 0, 0.0 ou false On peut initialiser le tableau à la création 1 i n t [ ] montableau = new i n t [ ] {3, 5, 1, 4} ; 2 i n t [ ] montableau = {3, 5, 1, 4} ;
49/55 Manipulation des tableaux en Initialisation d un tableau Par défaut : 0, 0.0 ou false On peut initialiser le tableau à la création 1 i n t [ ] montableau = new i n t [ ] {3, 5, 1, 4} ; 2 i n t [ ] montableau = {3, 5, 1, 4} ; Manipulation d un tableau L accès à un élément se fait avec montableau[indice] La taille d un tableau est donnée par montableau.length
49/55 Manipulation des tableaux en Initialisation d un tableau Par défaut : 0, 0.0 ou false On peut initialiser le tableau à la création 1 i n t [ ] montableau = new i n t [ ] {3, 5, 1, 4} ; 2 i n t [ ] montableau = {3, 5, 1, 4} ; Manipulation d un tableau L accès à un élément se fait avec montableau[indice] La taille d un tableau est donnée par montableau.length 1 i n t [ ] montableau = new i n t [ 4 ] ; 2 3 f o r ( i n t i=0 ; i <montableau. l e n g t h ; i++) { 4 montableau [ i ] = i 2 ; 5 }
50/55 Les références sur les tableaux en taba 1 i n t [ ] taba = new i n t [ 4 ] ;
50/55 Les références sur les tableaux en taba tabb 1 i n t [ ] taba = new i n t [ 4 ] ; 2 i n t [ ] tabb = new i n t [ 4 ] ;
50/55 Les références sur les tableaux en taba tabb 1 i n t [ ] taba = new i n t [ 4 ] ; 2 i n t [ ] tabb = new i n t [ 4 ] ; 3 taba [ 1 ] = 3 ; 3
50/55 Les références sur les tableaux en taba tabb 1 i n t [ ] taba = new i n t [ 4 ] ; 2 i n t [ ] tabb = new i n t [ 4 ] ; 3 taba [ 1 ] = 3 ; 4 tabb = taba ; 3
50/55 Les références sur les tableaux en taba tabb 1 i n t [ ] taba = new i n t [ 4 ] ; 2 i n t [ ] tabb = new i n t [ 4 ] ; 3 taba [ 1 ] = 3 ; 4 tabb = taba ; 5 tabb [ 1 ] = 7 ; 7
51/55 à plusieurs dimensions en Extension des définitions précédentes : à chaque dimension correspond une paire de crochets [ ]
51/55 à plusieurs dimensions en Extension des définitions précédentes : à chaque dimension correspond une paire de crochets [ ] Indiquer lors de la déclaration/création : le type des éléments et les dimensions
51/55 à plusieurs dimensions en Extension des définitions précédentes : à chaque dimension correspond une paire de crochets [ ] Indiquer lors de la déclaration/création : le type des éléments et les dimensions Exemples 1 d o u b l e [ ] [ ] [ ] tab 1 = new d o u b l e [ 3 ] [ 4 ] [ 3 ] ; 2 i n t [ ] [ ] tab 2 = new i n t [ ] [ ] {{1, 2}, {3, 4}, {5, 6}} ; 3 i n t [ ] [ ] tab 3 = {{1, 2}, {3, 4}, {5, 6}} ;
52/55 Plan
53/55 Déclaration Forme générale 1 s t a t i c t y p e R e s u l t a t nomfonction ( t y p e 1 param 1,..., t y p e n paramn ) { 2 i n s t r u c t i o n s 3 r e t u r n v a l e u r R e s u l t a t ; 4 }
53/55 Déclaration Forme générale 1 s t a t i c t y p e R e s u l t a t nomfonction ( t y p e 1 param 1,..., t y p e n paramn ) { 2 i n s t r u c t i o n s 3 r e t u r n v a l e u r R e s u l t a t ; 4 } Cas particulier : pas de résultat retourné 1 s t a t i c v o i d nomfonction ( t y p e 1 param 1,..., t y p e n paramn ) { 2 i n s t r u c t i o n s 3 }
54/55 Déclaration sont déclarées dans une classe et ne peuvent pas être imbriquées
54/55 Déclaration sont déclarées dans une classe et ne peuvent pas être imbriquées Exemple 1 c l a s s Exemple { 2 3 s t a t i c v o i d main ( S t r i n g [ ] a r g s ) { 4 S c a n n e r s c = new S c a n n e r ( System. i n ) ; 5 i n t n = s c. n e x t I n t ( ) ; 6 i n t n C a r r e = c a r r e ( n ) ; 7 System. out. p r i n t l n ( n + "^2 = " + n C a r r e ) ; 8 } 9 10 s t a t i c i n t c a r r e ( i n t x ) { 11 r e t u r n x x ; 12 } 13 }
55/55 Signature et fonctions homonymes En, lorsqu on appelle une fonction, elle est recherchée par sa signature Signature = nom de fonction + type des arguments Il est possible de déclarer des fonctions homonymes Même nom de fonctions avec des arguments différents (nombre et type) On parle de surcharge de fonction
55/55 Signature et fonctions homonymes En, lorsqu on appelle une fonction, elle est recherchée par sa signature Signature = nom de fonction + type des arguments Il est possible de déclarer des fonctions homonymes Même nom de fonctions avec des arguments différents (nombre et type) On parle de surcharge de fonction Exemple 1 c l a s s Exemple { 2 3 s t a t i c v o i d main ( S t r i n g [ ] a r g s ) { 4 S c a n n e r s c = new S c a n n e r ( System. i n ) ; 5 i n t n = s c. n e x t I n t ( ) ; 6 i n t n C a r r e = c a r r e ( n ) ; 7 d o u b l e d = s c. n e x t D o u b l e ( ) ; 8 d o u b l e d C a r r e = c a r r e ( d ) ; 9 } 10 11 s t a t i c i n t c a r r e ( i n t x ) { r e t u r n x x ; } 12 s t a t i c d o u b l e c a r r e ( d o u b l e x ) { r e t u r n x x ; } 13 }