SlideShare une entreprise Scribd logo
1  sur  34
Télécharger pour lire hors ligne
1
EPU - Génie Biologique (BIMB)
cathy.escazut@unice.fr
Programmation
Orientée
Objet
Le Langage JAVA
1
2/34
P.O.O. - Le langage Java
Chapitre 1
Les bases du langage
1
3/34
Présentation
● Java est un langage de programmation
● Développé en 1995 par Sun Microsystems
● Orienté objet : notion de classes, d'objets, d'héritage
● Multi-plateforme : la pré-compilation du code source produit le
Byte Code. Ce Byte Code pourra être ensuite exécuté par une
Machine Virtuelle Java (JVM) tournant sous n'importe quel
système d'exploitation (Windows, Linux, Mac OS, …)
xxx.java xxx.class
Pré-compilat°
Exécut°
Code Source Byte Code
J
V
M
1
4/34
Algorithmique : Rappels
● Un programme est une suite finie d'instructions exécutées de la
1ère à la dernière
● Une instruction est une action qui peut manipuler des variables
● Une variable permet de stocker une ou plusieurs valeurs qui
peuvent être modifiées au cours du programme
● Une constante permet de stocker une ou plusieurs valeurs qui
ne peuvent pas être modifiées au cours du programme
●
Un sous-programme (appelé méthode en Java)
– Est une suite d'instructions regroupées sous un nom
– Est appelé, avec ou sans paramètre, par un programme (ou
sous-programme)
– Retourne un résultat (fonction) ou pas (procédure)
1
5/34
Généralités
● Un programme Java est constitué de classes
● Les classes ont un nom qui commence par une majuscule
● Une seule classe contient une méthode main : c'est la fonction
qui sert de programme principal (point de départ de l'exécution)
● Les instructions se terminent par le caractère « ; »
La classe
PremierProg
La méthode main
1
6/34
Les variables (1)
● Toutes les variables doivent être déclarées :
– Un nom : une suite de caractères significative commençant
par une minuscule et sans espace.
Exemples : nom, dateNaiss
– Un type : la nature de la valeur qui sera stockée
● Types simples : int, double, char, boolean,...
● Types complexes : une classe prédéfinie (Ex : String,
Object), ou que vous aurez écrite.
– Syntaxe pour déclarer des variables :
<type> <nomVariable>;
1
7/34
Les variables (2)
● Symbole d'affectation : le caractère « = »
● Les opérateurs
– de comparaison :
== !=
> >=
< <=
– arithmétiques :
+ - * /
%
++ --
– logiques :
&& ||
1
8/34
Les constantes
● Toutes les constantes doivent être déclarées : même
déclaration que les variables, faire simplement précéder la
déclaration par : final
● Convention : le nom des constantes est tout en majuscules
● Obligation de donner la valeur dès la déclaration
final <type> <NOM_CTE> = <valeur> ;
● Utilisation d'une constante quand une valeur de variera pas
pendant toute la durée de l'exécution du programme :
permet une plus grande simplicité de mise à jour du programme
1
9/34
Interactions avec l'utilisateur (1)
● Lecture d'informations au clavier : utilisation d'un objet de la
classe Scanner
– Importer la classe Scanner qui se trouve dans le package
java.util :
import java.util.Scanner;
– Déclarer et créer l'objet puis lui indiquer où lire
Scanner clavier = new Scanner( System.in );
À placer avant la
déclaration de la classe
déclaration création entrée standard
1
10/34
Interactions avec l'utilisateur (2)
● Lecture de valeurs numériques :
– Lire un entier = récupérer un int sur System.in :
appliquer la méthode nextInt( ) à l'objet de type Scanner
et ranger le résultat dans une variable de type int
– Lire un réel = récupérer un double sur System.in :
appliquer la méthode nextDouble( ) à l'objet de type
Scanner et ranger le résultat dans une variable de type
double
La saisie d'une valeur numérique se termine par le
caractère Entrée :
– la valeur est récupérée dans une variable,
– le caractère Entrée est alors stocké dans un buffer en
attente d'une prochaine utilisation ...
1
11/34
Interactions avec l'utilisateur (3)
● Lecture de chaînes de caractères :
– récupérer un objet de type String sur System.in :
appliquer la méthode nextLine( ) à l'objet de type Scanner
et ranger le résultat dans une variable de type String
Si le buffer n'est pas vide, la méthode nextLine() n'ira pas
chercher l'information sur l'entrée standard.
La valeur sera récupérée dans le buffer.
Penser à vider le buffer après la lecture d'un
numérique … simplement en lisant la valeur contenue
sans la stocker : toujours mettre un simple nextLine( )
après un nextInt( ) et un nextDouble( )
1
12/34
Interactions avec l'utilisateur (4)
● Lecture d'un caractère :
– Il n 'existe pas de méthode dans la classe Scanner
– Solution :
● Utiliser la méthode nextLine( ) pour lire une
« chaîne de caractères » qui sera donc stockée
dans un objet de type String
● Ne tenir compte que du 1er caractère (caractère n°0)
en utilisant la méthode charAt(i) appliquée à
l'objet de type String lu
● Écriture à l'écran :
– Utiliser les méthodes print( ) et println( ) appliquée à
l'objet out de la classe System
– Concaténation avec l'opérateur « + »
1
13/34
Interactions avec l'utilisateur (5)
1
14/34
Les chaînes de caractères (1)
déclaration création
● Une chaîne de caractères = un objet de la classe String : il
faut non seulement déclarer mais aussi créer la « variable » :
String <nomVar> = new String ( ) ;
● Donner sa valeur à une chaîne :
<nomVar> = "valeur" ;
● Déclaration, création et initialisation peuvent être regroupées :
String <nomVar> = new String ( "valeur" ) ;
● Appliquer des méthodes spécifiques aux chaînes de caractères :
<nomVar>.nomMéthode(...) ;
1
15/34
Les chaînes de caractères (2)
● Quelques méthodes intéressantes :
– Récupérer le caractère en position i :
<nomCar> = <nomCh>.charAt(i) ;
– Connaître la longueur d'une chaîne :
<nomInt> = <nomCh>.length ( ) ;
– Mettre une chaîne en majuscules :
<nomChMaj> = <nomCh>.toUpperCase ( ) ;
– Mettre une chaîne en minuscules :
<nomChMin> = <nomCh>.toLowerCase ( ) ;
1
16/34
Les chaînes de caractères (3)
– Deux chaînes sont-elles identiques ?
<nomBool> = <nomCh1>.equals(<nomCh2>) ;
– Récupérer une portion d'une chaîne :
<nomCh2> = <nomCh1>.substring (<PosDeb>, <PosFin>) ;
– Créer une chaîne en en mettant deux bout à bout
( les concaténer ) :
<nomCh3> = <nomCh1>.concat (<nomCh2>) ;
– Retrouver la position de la 1ère occurrence d'une sous-
chaîne (ou d'un caractère) dans une chaîne :
<nomInt> = <nomCh>.indexOf (<nomSousCh>) ;
1
17/34
Les chaînes de caractères (4)
1
18/34
Les conditions (1)
● Exprimer une condition
– Syntaxe :
– La partie <condition> est un prédicat logique : son
résultat est égal à Vrai ou à Faux
– La partie else est facultative
if ( <condition> ) {
// actions à réaliser si <condition> est VRAI
}
else {
// actions à réaliser si <condition> est FAUX
}
1
19/34
Les conditions (2)
1
20/34
Les conditions (3)
1
21/34
Les itérations (1)
● Exprimer une itération
– Syntaxe :
– La partie <condition> est un prédicat logique : son
résultat est égal à Vrai ou à Faux
– Si la partie <condition> est fausse dès le départ : les
actions ne seront jamais exécutées
– Penser à faire évoluer la partie <condition> grâce à la
partie <evol_cond>
<init.>
while ( <condition> ) {
// actions à réaliser tant que <condition> est VRAI
<evol_cond>
}
1
22/34
Les itérations (2)
● Il existe 2 autres structures itératives :
for ( <init.> ; <condition> ; <evol_cond> ) {
// actions à réaliser tant que <condition> est VRAI
}
<init.>
do {
// actions à réaliser tant que <condition> est VRAI
<evol_cond>
} while ( <condition> ) ;
1
23/34
Les itérations (3)
1
24/34
Les tableaux (1)
● Un tableau = une variable pouvant contenir plusieurs valeurs
● Chaque valeur est rangée dans une « case » (une case peut
être vue comme une variable simple)
● Chaque case est identifiée par un numéro (appelé indice)
● La 1ère case possède l'indice 0
● La dernière case d'un tableau de N cases possède l'indice N-1
● Déclaration : donner le nom du tableau et le type des valeurs
qui seront stockées dans les cases :
<type> <nomTab>[ ] ; ou <type>[ ] <nomTab> ;
● Indiquer le nombre de cases :
<nomTab> = new <type>[ <nbCases> ] ;
0 1 2 3 4 5 6 7
1
25/34
Les tableaux (2)
● Manipuler un tableau = Manipuler ses cases
● Accéder à la valeur contenue dans une case d'un tableau =
donner le nom du tableau + indice de la case :
<nomTab>[ <indice> ]
● « Spécialités » à appliquer à un tableau :
– Parcourir toutes les valeurs stockées dans un tableau :
– Connaître la taille d'un tableau (à ranger dans une
variable) : <nomVar> = <nomTab>.length
● Possibilité d'avoir des tableaux à plusieurs dimensions
for ( <type> <nomVar> : <nomTab> ) {
/* actions à réaliser pour toutes les cases du tab :
<nomVar> va prendre toutes les valeurs stockées,
les unes après les autres */
}
1
26/34
Les tableaux (3)
1
27/34
Les tableaux (4)
1
28/34
Les méthodes (1)
● En Java, tout est rangé dans des classes : les sous-programmes
(fonctions et procédures) aussi !
● Rappels : les sous-programmes permettent de réutiliser à
volonté des portions de code : cela permet d'exécuter les
mêmes actions mais avec des valeurs différentes
● 2 types de sous-programmes :
– Fonction : produit un unique résultat
– Procédure : produit 0 ou plusieurs résultats
● Échange d'informations entre un sous-programme et son
programme appelant via des variables appelées paramètres
Les paramètres de type simple ne peuvent pas être
modifiés par le sous-programme
1
29/34
Les méthodes (2)
● Les fonctions :
– <nomP> est un paramètre de type <typeP>
– <valeur> représente le résultat produit par la fonction, il
faut le retourner à l'appelant
– L'appel de la fonction dans le programme appelant, fait
partie d'une instruction : le résultat retourné doit être
utilisé (stocké dans une variable, affiché à l'écran, …)
<nomVar> = <nomFct> (<nomP>, … ) ;
System.out.print ("Res = " + <nomFct> (<nomP>, … ) ;
public static <typeRetour> <nomFct> (<typeP> <nomP>, … )
{
// actions à réaliser …
return <valeur> ; // <valeur> est de type <typeRetour>
}
1
30/34
Les méthodes (3)
La méthode main
La méthode
Cube
1
31/34
Les méthodes (4)
● Les procédures :
– <nomP> est un paramètre de type <typeP>
– Les éventuels résultats de type simple calculés par la
procédure ne peuvent pas être transmis à l'appelant
– L'appel de la procédure dans le programme appelant, est
une instruction complète (ne fait pas partie d'une autre
instruction) : <nomProc> (<nomP>, … ) ;
public static void <nomProc> (<typeP> <nomP>, … ) {
// actions à réaliser …
}
1
32/34
Les méthodes (5)
La méthode
minMax
La méthode
affTab
La méthode main
1
33/34
Les méthodes (6)
● Surcharge de méthodes :
– Écrire plusieurs méthodes ayant le même nom mais avec
des paramètres différents
– Java se base sur les paramètres (leur nombre et/ou leur
type) pour savoir quelle méthode choisir
– Penser à commenter les méthodes pour les distinguer les
une des autres :
indiquer leur rôle, les paramètres nécessaires, …
– Éviter de donner à un paramètre le nom d'une variable
utilisée ailleurs (risque de confusion)
1
34/34
Les méthodes (7)
int somme (int, int, int)
int somme (int, int)
double somme (double, double)

Contenu connexe

Similaire à Java1_BasesLangage.pdf

cours fortran.pptx
cours fortran.pptxcours fortran.pptx
cours fortran.pptxMED B
 
Cours langage c
Cours langage cCours langage c
Cours langage ccoursuniv
 
Chapitre1: Langage Python
Chapitre1: Langage PythonChapitre1: Langage Python
Chapitre1: Langage PythonAziz Darouichi
 
Formation python
Formation pythonFormation python
Formation pythonj_lipaz
 
Debuter en Python.ppt
Debuter en Python.pptDebuter en Python.ppt
Debuter en Python.pptSofienBoutaib
 
Chapitre 2-Concepts de base de l'algorithme-2024.pdf
Chapitre 2-Concepts de base de l'algorithme-2024.pdfChapitre 2-Concepts de base de l'algorithme-2024.pdf
Chapitre 2-Concepts de base de l'algorithme-2024.pdfAdjimbawNDIAYE
 
Vbisigk
VbisigkVbisigk
VbisigkISIG
 
cours developpement web javascript 2023/2024
cours developpement web javascript 2023/2024cours developpement web javascript 2023/2024
cours developpement web javascript 2023/2024YounesOuladSayad1
 
M2 INAE introduction python.pdf
M2 INAE introduction python.pdfM2 INAE introduction python.pdf
M2 INAE introduction python.pdfHajer Amdouni
 
Conception de base_de_l_algorithme
Conception de base_de_l_algorithmeConception de base_de_l_algorithme
Conception de base_de_l_algorithmemustapha4
 
intro-csharp developement master 2 IF APP
intro-csharp developement master 2 IF APPintro-csharp developement master 2 IF APP
intro-csharp developement master 2 IF APPfrwebhelp
 

Similaire à Java1_BasesLangage.pdf (20)

cours fortran.pptx
cours fortran.pptxcours fortran.pptx
cours fortran.pptx
 
Introduction à Python
Introduction à PythonIntroduction à Python
Introduction à Python
 
Cours java script
Cours java scriptCours java script
Cours java script
 
Cours langage c
Cours langage cCours langage c
Cours langage c
 
Chapitre1: Langage Python
Chapitre1: Langage PythonChapitre1: Langage Python
Chapitre1: Langage Python
 
Formation python
Formation pythonFormation python
Formation python
 
Introduction a Java
Introduction a JavaIntroduction a Java
Introduction a Java
 
Debuter en Python.ppt
Debuter en Python.pptDebuter en Python.ppt
Debuter en Python.ppt
 
Chapitre 2-Concepts de base de l'algorithme-2024.pdf
Chapitre 2-Concepts de base de l'algorithme-2024.pdfChapitre 2-Concepts de base de l'algorithme-2024.pdf
Chapitre 2-Concepts de base de l'algorithme-2024.pdf
 
Vbisigk
VbisigkVbisigk
Vbisigk
 
cours developpement web javascript 2023/2024
cours developpement web javascript 2023/2024cours developpement web javascript 2023/2024
cours developpement web javascript 2023/2024
 
threads.pdf
threads.pdfthreads.pdf
threads.pdf
 
COURS_PYTHON_22.ppt
COURS_PYTHON_22.pptCOURS_PYTHON_22.ppt
COURS_PYTHON_22.ppt
 
Cours tp2
Cours tp2Cours tp2
Cours tp2
 
M2 INAE introduction python.pdf
M2 INAE introduction python.pdfM2 INAE introduction python.pdf
M2 INAE introduction python.pdf
 
coursalgorithmique9-10.ppt
coursalgorithmique9-10.pptcoursalgorithmique9-10.ppt
coursalgorithmique9-10.ppt
 
Conception de base_de_l_algorithme
Conception de base_de_l_algorithmeConception de base_de_l_algorithme
Conception de base_de_l_algorithme
 
Tp1 matlab
Tp1 matlab Tp1 matlab
Tp1 matlab
 
intro-csharp developement master 2 IF APP
intro-csharp developement master 2 IF APPintro-csharp developement master 2 IF APP
intro-csharp developement master 2 IF APP
 
Cours_Java.pdf
Cours_Java.pdfCours_Java.pdf
Cours_Java.pdf
 

Java1_BasesLangage.pdf

  • 1. 1 EPU - Génie Biologique (BIMB) cathy.escazut@unice.fr Programmation Orientée Objet Le Langage JAVA
  • 2. 1 2/34 P.O.O. - Le langage Java Chapitre 1 Les bases du langage
  • 3. 1 3/34 Présentation ● Java est un langage de programmation ● Développé en 1995 par Sun Microsystems ● Orienté objet : notion de classes, d'objets, d'héritage ● Multi-plateforme : la pré-compilation du code source produit le Byte Code. Ce Byte Code pourra être ensuite exécuté par une Machine Virtuelle Java (JVM) tournant sous n'importe quel système d'exploitation (Windows, Linux, Mac OS, …) xxx.java xxx.class Pré-compilat° Exécut° Code Source Byte Code J V M
  • 4. 1 4/34 Algorithmique : Rappels ● Un programme est une suite finie d'instructions exécutées de la 1ère à la dernière ● Une instruction est une action qui peut manipuler des variables ● Une variable permet de stocker une ou plusieurs valeurs qui peuvent être modifiées au cours du programme ● Une constante permet de stocker une ou plusieurs valeurs qui ne peuvent pas être modifiées au cours du programme ● Un sous-programme (appelé méthode en Java) – Est une suite d'instructions regroupées sous un nom – Est appelé, avec ou sans paramètre, par un programme (ou sous-programme) – Retourne un résultat (fonction) ou pas (procédure)
  • 5. 1 5/34 Généralités ● Un programme Java est constitué de classes ● Les classes ont un nom qui commence par une majuscule ● Une seule classe contient une méthode main : c'est la fonction qui sert de programme principal (point de départ de l'exécution) ● Les instructions se terminent par le caractère « ; » La classe PremierProg La méthode main
  • 6. 1 6/34 Les variables (1) ● Toutes les variables doivent être déclarées : – Un nom : une suite de caractères significative commençant par une minuscule et sans espace. Exemples : nom, dateNaiss – Un type : la nature de la valeur qui sera stockée ● Types simples : int, double, char, boolean,... ● Types complexes : une classe prédéfinie (Ex : String, Object), ou que vous aurez écrite. – Syntaxe pour déclarer des variables : <type> <nomVariable>;
  • 7. 1 7/34 Les variables (2) ● Symbole d'affectation : le caractère « = » ● Les opérateurs – de comparaison : == != > >= < <= – arithmétiques : + - * / % ++ -- – logiques : && ||
  • 8. 1 8/34 Les constantes ● Toutes les constantes doivent être déclarées : même déclaration que les variables, faire simplement précéder la déclaration par : final ● Convention : le nom des constantes est tout en majuscules ● Obligation de donner la valeur dès la déclaration final <type> <NOM_CTE> = <valeur> ; ● Utilisation d'une constante quand une valeur de variera pas pendant toute la durée de l'exécution du programme : permet une plus grande simplicité de mise à jour du programme
  • 9. 1 9/34 Interactions avec l'utilisateur (1) ● Lecture d'informations au clavier : utilisation d'un objet de la classe Scanner – Importer la classe Scanner qui se trouve dans le package java.util : import java.util.Scanner; – Déclarer et créer l'objet puis lui indiquer où lire Scanner clavier = new Scanner( System.in ); À placer avant la déclaration de la classe déclaration création entrée standard
  • 10. 1 10/34 Interactions avec l'utilisateur (2) ● Lecture de valeurs numériques : – Lire un entier = récupérer un int sur System.in : appliquer la méthode nextInt( ) à l'objet de type Scanner et ranger le résultat dans une variable de type int – Lire un réel = récupérer un double sur System.in : appliquer la méthode nextDouble( ) à l'objet de type Scanner et ranger le résultat dans une variable de type double La saisie d'une valeur numérique se termine par le caractère Entrée : – la valeur est récupérée dans une variable, – le caractère Entrée est alors stocké dans un buffer en attente d'une prochaine utilisation ...
  • 11. 1 11/34 Interactions avec l'utilisateur (3) ● Lecture de chaînes de caractères : – récupérer un objet de type String sur System.in : appliquer la méthode nextLine( ) à l'objet de type Scanner et ranger le résultat dans une variable de type String Si le buffer n'est pas vide, la méthode nextLine() n'ira pas chercher l'information sur l'entrée standard. La valeur sera récupérée dans le buffer. Penser à vider le buffer après la lecture d'un numérique … simplement en lisant la valeur contenue sans la stocker : toujours mettre un simple nextLine( ) après un nextInt( ) et un nextDouble( )
  • 12. 1 12/34 Interactions avec l'utilisateur (4) ● Lecture d'un caractère : – Il n 'existe pas de méthode dans la classe Scanner – Solution : ● Utiliser la méthode nextLine( ) pour lire une « chaîne de caractères » qui sera donc stockée dans un objet de type String ● Ne tenir compte que du 1er caractère (caractère n°0) en utilisant la méthode charAt(i) appliquée à l'objet de type String lu ● Écriture à l'écran : – Utiliser les méthodes print( ) et println( ) appliquée à l'objet out de la classe System – Concaténation avec l'opérateur « + »
  • 14. 1 14/34 Les chaînes de caractères (1) déclaration création ● Une chaîne de caractères = un objet de la classe String : il faut non seulement déclarer mais aussi créer la « variable » : String <nomVar> = new String ( ) ; ● Donner sa valeur à une chaîne : <nomVar> = "valeur" ; ● Déclaration, création et initialisation peuvent être regroupées : String <nomVar> = new String ( "valeur" ) ; ● Appliquer des méthodes spécifiques aux chaînes de caractères : <nomVar>.nomMéthode(...) ;
  • 15. 1 15/34 Les chaînes de caractères (2) ● Quelques méthodes intéressantes : – Récupérer le caractère en position i : <nomCar> = <nomCh>.charAt(i) ; – Connaître la longueur d'une chaîne : <nomInt> = <nomCh>.length ( ) ; – Mettre une chaîne en majuscules : <nomChMaj> = <nomCh>.toUpperCase ( ) ; – Mettre une chaîne en minuscules : <nomChMin> = <nomCh>.toLowerCase ( ) ;
  • 16. 1 16/34 Les chaînes de caractères (3) – Deux chaînes sont-elles identiques ? <nomBool> = <nomCh1>.equals(<nomCh2>) ; – Récupérer une portion d'une chaîne : <nomCh2> = <nomCh1>.substring (<PosDeb>, <PosFin>) ; – Créer une chaîne en en mettant deux bout à bout ( les concaténer ) : <nomCh3> = <nomCh1>.concat (<nomCh2>) ; – Retrouver la position de la 1ère occurrence d'une sous- chaîne (ou d'un caractère) dans une chaîne : <nomInt> = <nomCh>.indexOf (<nomSousCh>) ;
  • 17. 1 17/34 Les chaînes de caractères (4)
  • 18. 1 18/34 Les conditions (1) ● Exprimer une condition – Syntaxe : – La partie <condition> est un prédicat logique : son résultat est égal à Vrai ou à Faux – La partie else est facultative if ( <condition> ) { // actions à réaliser si <condition> est VRAI } else { // actions à réaliser si <condition> est FAUX }
  • 21. 1 21/34 Les itérations (1) ● Exprimer une itération – Syntaxe : – La partie <condition> est un prédicat logique : son résultat est égal à Vrai ou à Faux – Si la partie <condition> est fausse dès le départ : les actions ne seront jamais exécutées – Penser à faire évoluer la partie <condition> grâce à la partie <evol_cond> <init.> while ( <condition> ) { // actions à réaliser tant que <condition> est VRAI <evol_cond> }
  • 22. 1 22/34 Les itérations (2) ● Il existe 2 autres structures itératives : for ( <init.> ; <condition> ; <evol_cond> ) { // actions à réaliser tant que <condition> est VRAI } <init.> do { // actions à réaliser tant que <condition> est VRAI <evol_cond> } while ( <condition> ) ;
  • 24. 1 24/34 Les tableaux (1) ● Un tableau = une variable pouvant contenir plusieurs valeurs ● Chaque valeur est rangée dans une « case » (une case peut être vue comme une variable simple) ● Chaque case est identifiée par un numéro (appelé indice) ● La 1ère case possède l'indice 0 ● La dernière case d'un tableau de N cases possède l'indice N-1 ● Déclaration : donner le nom du tableau et le type des valeurs qui seront stockées dans les cases : <type> <nomTab>[ ] ; ou <type>[ ] <nomTab> ; ● Indiquer le nombre de cases : <nomTab> = new <type>[ <nbCases> ] ; 0 1 2 3 4 5 6 7
  • 25. 1 25/34 Les tableaux (2) ● Manipuler un tableau = Manipuler ses cases ● Accéder à la valeur contenue dans une case d'un tableau = donner le nom du tableau + indice de la case : <nomTab>[ <indice> ] ● « Spécialités » à appliquer à un tableau : – Parcourir toutes les valeurs stockées dans un tableau : – Connaître la taille d'un tableau (à ranger dans une variable) : <nomVar> = <nomTab>.length ● Possibilité d'avoir des tableaux à plusieurs dimensions for ( <type> <nomVar> : <nomTab> ) { /* actions à réaliser pour toutes les cases du tab : <nomVar> va prendre toutes les valeurs stockées, les unes après les autres */ }
  • 28. 1 28/34 Les méthodes (1) ● En Java, tout est rangé dans des classes : les sous-programmes (fonctions et procédures) aussi ! ● Rappels : les sous-programmes permettent de réutiliser à volonté des portions de code : cela permet d'exécuter les mêmes actions mais avec des valeurs différentes ● 2 types de sous-programmes : – Fonction : produit un unique résultat – Procédure : produit 0 ou plusieurs résultats ● Échange d'informations entre un sous-programme et son programme appelant via des variables appelées paramètres Les paramètres de type simple ne peuvent pas être modifiés par le sous-programme
  • 29. 1 29/34 Les méthodes (2) ● Les fonctions : – <nomP> est un paramètre de type <typeP> – <valeur> représente le résultat produit par la fonction, il faut le retourner à l'appelant – L'appel de la fonction dans le programme appelant, fait partie d'une instruction : le résultat retourné doit être utilisé (stocké dans une variable, affiché à l'écran, …) <nomVar> = <nomFct> (<nomP>, … ) ; System.out.print ("Res = " + <nomFct> (<nomP>, … ) ; public static <typeRetour> <nomFct> (<typeP> <nomP>, … ) { // actions à réaliser … return <valeur> ; // <valeur> est de type <typeRetour> }
  • 30. 1 30/34 Les méthodes (3) La méthode main La méthode Cube
  • 31. 1 31/34 Les méthodes (4) ● Les procédures : – <nomP> est un paramètre de type <typeP> – Les éventuels résultats de type simple calculés par la procédure ne peuvent pas être transmis à l'appelant – L'appel de la procédure dans le programme appelant, est une instruction complète (ne fait pas partie d'une autre instruction) : <nomProc> (<nomP>, … ) ; public static void <nomProc> (<typeP> <nomP>, … ) { // actions à réaliser … }
  • 32. 1 32/34 Les méthodes (5) La méthode minMax La méthode affTab La méthode main
  • 33. 1 33/34 Les méthodes (6) ● Surcharge de méthodes : – Écrire plusieurs méthodes ayant le même nom mais avec des paramètres différents – Java se base sur les paramètres (leur nombre et/ou leur type) pour savoir quelle méthode choisir – Penser à commenter les méthodes pour les distinguer les une des autres : indiquer leur rôle, les paramètres nécessaires, … – Éviter de donner à un paramètre le nom d'une variable utilisée ailleurs (risque de confusion)
  • 34. 1 34/34 Les méthodes (7) int somme (int, int, int) int somme (int, int) double somme (double, double)