0% ont trouvé ce document utile (0 vote)
190 vues149 pages

1 coursJavaIntroduction

Ce document introduit le langage de programmation Java. Il présente les principales caractéristiques de Java comme étant un langage orienté objet, fortement typé et portable. Le document décrit également le processus de développement d'un programme Java ainsi que les principales étapes de compilation et d'exécution.

Transféré par

Douaa la
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
190 vues149 pages

1 coursJavaIntroduction

Ce document introduit le langage de programmation Java. Il présente les principales caractéristiques de Java comme étant un langage orienté objet, fortement typé et portable. Le document décrit également le processus de développement d'un programme Java ainsi que les principales étapes de compilation et d'exécution.

Transféré par

Douaa la
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Java : introduction

Java 1 / 90
References

Ø Ce cours est base sur le cours du Professeur El


Mouelhi : Docteur de l’universite ́ d’Aix-Marseille
Ø https://perso.liris.cnrs.fr/celine.robardet/doc/poly20
13.pdf
Ø https://www.jmdoudoux.fr/java/dej/chap-poo.htm

Java 2 / 90
Plan

1 Introduction

2 Avant de commencer

3 Premier projet Java

4 Variables
Typage statique
Typage dynamique

5 Opérations sur les variables

6 Lecture d’une saisie

Java 3 / 90
Plan

7 Structures conditionnelles et itératives


if
if ... else
if ... else if ... else
switch
Expression ternaire
while
do ... while
for

8 Tableaux
9 Constantes

10 Méthodes

Java 4 / 90
Introduction

Java
Java ?
langage de programmation
orienté objet
fortement typé

présenté officiellement en 1995 par Sun Microsystems (rachat


H I©
par Oracle Corporation le 20 avril 2009)

M
syntaxe très proche OCU(procédural) et C++ (procédural, oriente
du
objet)
©

Java 4 / 90
Introduction

Java
Java ?
langage de programmation
orienté objet
fortement typé

présenté officiellement en 1995 par Sun Microsystems (rachat


H I©
par Oracle Corporation le 20 avril 2009)

M
syntaxe très proche OCU(procédural) et C++ (procédural, oriente
du
objet)
©

Attention
Java /= JavaScript
Java 4 / 90
Introduction

Java, pourquoi ?
Langage de haut niveau (pas de gestion de mémoire, pas d’allocation
dynamique, pas de pointeur... comme en C et C++)

Disposant d’une bonne documentation, des supports vidéos, plusieurs exemples


sur internet

énorme communauté : un des langages les plus utilises dans le monde


(https://www.tiobe.com/tiobe-index/)

HI©
Permettant de developper des programmes:
U
robustes
MO
©
sécurisés et fiables
bien structures et maintenables
portables : Windows, Mac OS, Linux (Write once, run everywhere ou écrire
une fois, exécuter partout)
...

Java 5 / 90
Introduction

Java

Quel type d’application ?

applications consoles (JSE)


applications du bureau (Client lourd avec Swing)
applications web (JEE)
HI©
applications mobilesOU
M
©
web services (Jersey...)
jeux...

Java 6 / 90
Introduction

Java
Quelques versions de Java (les plus importantes)
Java 1 (sortie en 1996)

Java 2 (sortie en 1998, nommée Playground) : Swing + collection

Java 4 (sortie en 2002, nommée Merlin) : expressions régulières + parser XML (JAXP)

Java 5 (sortie en 2004, nommée Tiger) : généricité, annotation + énumérations + plus


besoin de convertir les types wrappers en primitifs (et inversement)

U H
Java 6 (sortie en 2006, nommée Mustang) : JAX-WS (Web services REST)

MO
Java 7 (sortie en 2011, nommée Dolphin) : String dans switch

©
Java 8 (sortie en Mars 2014, nommée Spider) : interface fonctionnelle, méthode par
défaut, expression Lambda, MapReduce pour les collections

Java 10 (sortie en Mars 2018) : mot-clé var

Java 11 (sortie en Septembre 2018) : simplifier l’exécution d’un programme en ligne de


commande

Java 12 (sortie en Mars 2019) : simplification de switch et String multi-lignes


Java 7 / 90
Introduction

Java
Quelques versions de Java (les plus importantes)
Java 13 (sortie en Septembre 2019)

Java 14 (sortie en Mars 2021)

Java 15 (sortie en Septembre 2021)

Java 16 (sortie en en Mars 2021)


Java 17 LTS (sortie en Septembre 2021)
H
U
MO
Java 18 (sortie en Mars 2022)

©
Java 19 (sortie en Septembre 2022)

Java 20 (sortie en Mars 2023)

Java 21 (sortie en Septembre 2023)

Java 7 / 90
Introduction

Java

Comment ça fonctionne ?


On écrit un programme dans un fichier .java

Ensuite, le compilateur génère un fichier .class du même nom


(contenant du bytecode)

Puis, la machine virtuelle exécute le bytecode en le traduisant en


langage natif (langage de bas niveau, ce qui assure la portabilité
d’un programme java)

compiler JVM
MyClass.java MyClass.class MyClass

Java 8 / 90
Introduction

Java
De quoi on a besoin (le minimum) ?

Un éditeur de texte (Bloc-notes, Notepad++, Sublime Text...)


Un kit de développement (JDK : Java Development Kit)
contenant :
Java Runtime Environment (JRE, incluant la machine virtuelle de
Java (JVM))

H I©
Des librairies (JSE : Java Standard Edition, JEE : Java Enterprise
O U
Edition, JME Java Micro Edition, Swing, JDBC...)
M
Des commandes permettant la création, la compilation et
© d’un programme Java
l’exécution
javac : pour compiler
java : pour exécuter
javadoc : pour générer une documentation
jar : pour archiver

Java 9 / 90
Introduction

Introduction

JDK : téléchargement
https://www.oracle.com/java/technologies/javase/
jdk15-archive-downloads.html

Java 10 / 90
Introduction

Java
Créons une classe MyClass dans un fichier MyClass.java
public class MyClass {

public static void main(String[] args) {

©
System.out.print("Hello world from console");
}
}

compiler JVM
MyClass.java MyClass.class MyClass

Java 12 / 90
Introduction

Java
Créons une classe MyClass dans un fichier MyClass.java
public class MyClass {

public static void main(String[] args) {

©
System.out.print("Hello world from console");
}
}

compiler JVM
MyClass.java MyClass.class MyClass

javac MyClass.java

Java 12 / 90
Introduction

Java
Créons une classe MyClass dans un fichier MyClass.java
public class MyClass {

public static void main(String[] args) {

©
System.out.print("Hello world from console");
}
}

compiler JVM
MyClass.java MyClass.class MyClass

javac MyClass.java java MyClass

Java 12 / 90
Introduction

Java
Créons une classe MyClass dans un fichier MyClass.java
public class MyClass {

public static void main(String[] args) {

©
System.out.print("Hello world from console");
}
}

compiler JVM
MyClass.java MyClass.class MyClass

javac MyClass.java java MyClass

java MyClass.java [depuis Java 11]


Java 12 / 90
Introduction

Java

Pour compiler
javac MyClass.java

Java 13 / 90
Introduction

Java

Pour compiler
javac MyClass.java

S’il existe plusieurs versions de JDK sur la machine


javac -target 8 -version 8 MyClass.java

Java 13 / 90
Introduction

Java

Pour compiler
javac MyClass.java

S’il existe plusieurs versions de JDK sur la machine


javac -target 8 -version 8 MyClass.java

Pour exécuter (ça affiche Hello world from console)


java MyClass

Java 13 / 90
Introduction

Java

On peut aussi utiliser un IDE (Environnement de développement


intégré)

pour éviter d’utiliser la console et les commandes


car un IDE intègre un compilateur lancé meme pendant l’écriture
H
OU syntaxique, l’auto-complétion,
du code
Mcoloration
pour profiter de la
© automatique...
l’indentation

pour avoir une bonne structuration du projet

Java 14 / 90
Introduction

Java

Exemple d’IDE pour Java


Eclipse

Netbeans


JDeveloper

U H
MO
IntelliJ IDEA

©
JBuilder

JCreator...

...

Java 15 / 90
Introduction

Java

Eclipse, pourquoi ?
open-source

Écrit en Java
multi-langage : Java, C++, PHP, Cobol, C#, JavaScript...

Java 16 / 90
Introduction

Introduction

Eclipse : téléchargement
https://www.eclipse.org/downloads/download.php?file=
/oomph/epp/2021-03/R/eclipse-inst-win64.exe

Java 17 / 90
Introduction

Introduction

Editeur Java en ligne


https://www.jdoodle.com/online-java-compiler/

Java 18 / 90
Introduction

Java

©
MOU HI

Java 19 / 90
Introduction

Java

©
MOU HI

Java 19 / 90
Avant de commencer

Java

Les règles de nommage en Java

Pour les classes et les fichiers : Le Pascal case


Pour les variables, les objets et les méthodes : Le Camel case
Pour les noms de projets : Le Kebab case/Spinal case

Java 20 / 90
Avant de commencer

Java

Les règles de nommage en Java

Pour les classes et les fichiers : Le Pascal case


Pour les variables, les objets et les méthodes : Le Camel case
Pour les noms de projets : Le Kebab case

Pour plus de détails


https://wprock.fr/blog/conventions-nommage-programmation/

Java 20 / 90
Avant de commencer

Java

Les instructions
Chaque instruction se termine par ;


Il est possible d’écrire plusieurs instructions sur une même ligne
H
U
(mais ce n’est pas une bonne pratique)
MOle formatage et l’indentation du code avec le
Eclipse nous facilite
©CTRL + Shift + F
raccourci

Java 21 / 90
Avant de commencer

Java

Comment organiser un projet Java ?

Une classe par fichier


Organiser les classes par package selon la sémantique
HI©
U
Une classe ne peut être définie dans plusieurs fichiers (pas de
MO
classe partielle en Java)

©
Il est possible de créer deux classes avec le même nom dans
deux packages différents

Java 22 / 90
Premier projet Java

Java
Comment créer un projet sous Eclipse ?
Aller dans File > New > Java Project
Remplir le champ Project name: avec cours-introduction
puis cliquer sur Next
Décocher la case Create module-info.java file puis
cliquer sur Finish

Java 23 / 90
Premier projet Java

Java
Comment créer un projet sous Eclipse ?
Aller dans File > New > Java Project
Remplir le champ Project name: avec cours-introduction
puis cliquer sur Next
Décocher la case Create module-info.java file puis
cliquer sur Finish

Que contient ce projet ?


JRE System Library : l’ensemble de .jar indispensable pour
le lancement du projet
src : le répertoire qui contiendra les fichiers sources (les classes)

Java 23 / 90
Premier projet Java

Java
Comment créer une classe ?
Aller dans File > New > Class
Dans Package, saisir org.eclipse.classes

Dans Class, saisir FirstClass


Cocher la case public static void main String[]args)
H
Cliquer sur Finish OU
M
©

Java 24 / 90
Premier projet Java

Java
Comment créer une classe ?
Aller dans File > New > Class
Dans Package, saisir org.eclipse.classes

Dans Class, saisir FirstClass


Cocher la case public static void main (String[]
H
args)
U
MO
Cliquer sur Finish
©
Remarque
Si on a un package, on peut le sélectionner au moment de la création
de la classe
Java 24 / 90
Premier projet Java

Java

Comment creer un package ?


Aller dans File > New > Package

Saisir le nom du package et valider

Java 25 / 90
Premier projet Java

Java

Contenu de la classe FirstClass


package org.eclipse.classes;

public class FirstClass {


©
MOU HI
public static void main(String[] args) {
// TODO Auto-generated method stub

} ©
}

Java 26 / 90
Premier projet Java

Java
Explication
En java, et contrairement a`plusieurs langages OO comme C++,
C#, PHP..., on ne peut écrire une instruction en dehors d’une
(méthode de) classe.
En java, un fichier contient une seule classe et une classe ne peut

H I ©
être déclarée dans plusieurs fichiers (contrairement a` C#)

O U org.eclipse.classes
La première ligne package nous
M
informe que la classe actuelle se situe dans
©
src/org/eclipse/classes dans un répertoire
cours-introduction situé dans le work-space d’Eclipse
Dans un projet Java, il faut qu’au moins une classe contienne la
méthode public static void main(String[] args) :
point d’entrée du projet

Java 27 / 90
Premier projet Java

Java
Les commentaires
Trois types de commentaires

Java 28 / 90
Premier projet Java

Java
Les commentaires
Trois types de commentaires

Commentaire mono-ligne
// ceci est un commentaire sur une seule ligne

Java 28 / 90
Premier projet Java

Java
Les commentaires
Trois types de commentaires

Commentaire mono-ligne
// ceci est un commentaire sur une seule ligne

Commentaire sur plusieurs lignes


/* ceci est un
commentaire
©
sur trois lignes */

Java 28 / 90
Premier projet Java

Java
Les commentaires
Trois types de commentaires

Commentaire mono-ligne
// ceci est un commentaire sur une seule ligne

Commentaire sur plusieurs lignes


/* ceci est un
commentaire
©
sur trois lignes */

Commentaire pour documentation


/**
@author Larry Ellison
*/
Java 28 / 90
Premier projet Java

Java
Pour afficher Hello World, on modifie la classe FirstClass
package org.eclipse.classes;

public class FirstClass {

public static void main(String[] args) {


©
System.out.println("Hello World!");

} MOU HI
}

Java est un langage 100% (ou presque) orienté objet

Pour afficher un message, il faut utiliser la classe System

La classe System a deux objets pour l’entrée/sortie (in/out)

L’objet out a plusieurs méthodes d’affichage comme print() et


println()
Java 29 / 90
Premier projet Java

Java

Comment exécuter le programme ? (voir le résultat)


Soit en faisant clic droit sur cours-introduction dans
Package Explorer et aller dans Run As > Java


Application

U H
Soit en faisant clic droit sur la classe contenant puclic static
MO
void main() (ici FirstClass) dans le panneau central et aller
©
dans Run As > Java Application

Soit en cliquant sur le triangle vert dans la liste de raccourci

Java 30 / 90
Premier projet Java

Java

Où voir le résultat ?


Dans la console Eclipse
Si la console n’est pas visible, aller dans Window > Show View
> Other..., saisir console et la sélectionner puis valider.

Java 31 / 90
Premier projet Java

Java

Ou` voir le résultat ?


Dans la console Eclipse
Si la console n’est pas visible, aller dans Window > Show View
> Other..., saisir console et la sélectionner puis valider.

Ou` sont les .class generes?

Dans le work-space, aller voir dans le répertoire portant le nom


du projet (ici cours-introduction)
Dans org/eclipse/classes, un fichier FirstClass.class
à été générer

Java 31 / 90
Variables

Java

Une variable ?
Un pointeur vers une zone mémoire
Permettant de stocker une ou plusieurs données
Pouvant avoir plusieurs valeurs différentes dans un programme

Java 32 / 90
Variables

Java

Une variable ?
Un pointeur vers une zone mémoire
Permettant de stocker une ou plusieurs données
Pouvant avoir plusieurs valeurs différentes dans un programme

Java est un langage de programmation fortement typé

Il faut préciser le type de chaque variable


Une variable peut avoir de valeurs différentes mais ne peut
changer de type.

Java 32 / 90
Variables

Java

Deux modes de typage en Java


Statique : le type est précisé a`la déclaration de la variable

HI©
Dynamique : la variable est déclarée avec le mot-clé var et son
U
MO
type est dynamiquement déterminé a`partir de la valeur initiale.
[disponible depuis Java 11]
©

Java 33 / 90
Variables Typage statique

Java

Déclarer une variable


type nomVariable;

Java 34 / 90
Variables Typage statique

Java

Déclarer une variable


type nomVariable;

Deux choix possibles pour typer les variables


Types simples (primitifs) : commencent par une lettre en
minuscule

Types objets : commencent par une lettre en majuscule

Java 34 / 90
Variables Typage statique

Java
Principaux types primitifs en Java

byte : entier codé sur 1 octet (entre -128 et 127)

short : entier codé sur 2 octets (entre -32 768 et 32 767)

int : entier codé sur 4 octets (entre 2 147 483 648 et 2 147 483 647)


long : entier codé sur 8 octets (entre -9 223 372 036 854 775 808 et +9 223 372
H
U
036 854 775 807)

MOcodé sur 4 octets


float : nombre a` virgule

double ©: nombre a` virgule codé sur 8

octets boolean : soit true soit false (1

octet)

char : caractère codé sur 2 octet situé entre deux ’

Java 35 / 90
Variables Typage statique

Java
Principaux types primitifs en Java

byte : entier codé sur 1 octet (entre -128 et 127)

short : entier codé sur 2 octets (entre -32 768 et 32 767)

int : entier codé sur 4 octets (entre 2 147 483 648 et 2 147 483 647)


long : entier codé sur 8 octets (entre -9 223 372 036 854 775 808 et +9 223 372
H
U
036 854 775 807)

MOcodésur 4 octets
float : nombre a`virgule

double :©nombre a`virgule codé sur 8 octets

boolean : soit true soit false (1 octet)

char : caractère codé sur 2 octet situé entre deux ’

Pas de type primitif pour les châınes de caractère.


Java 35 / 90
Variables Typage statique

Java
Exemple
int x;

Java 36 / 90
Variables Typagestatique

Java
Exemple
int x;

Déclarer et initialiser une variable


int x = 5;

Java 36 / 90
Variables Typagestatique

Java
Exemple
int x;

Déclarer et initialiser une variable


int x = 5;

Ceci est une erreur


byte x = 130;

Java 36 / 90
Variables Typage statique

Java
Exemple
int x;

Déclarer et initialiser une variable


int x = 5;

Ceci est une erreur


byte x = 130;

Pour convertir le contenu d’une variable (le cast pour les types
compatibles)
int x = 100;
byte z = (byte) x;
System.out.println(z); // affiche 100
Java 36 / 90
Variables Typagestatique

Java

Attention aux valeurs qui dépassent l’intervalle


int x = 200;
byte z = (byte) x; MOU HI
System.out.println(z); // affiche -56

Java 37 / 90
Variables Typagestatique

Java

Les emballages (wrapper) de types primitifs (types objets) en Java

Byte pour byte

Short pour short

Long pour long

Integer pour int


HI©
Float pour float
M OU
©
Double pour double

Boolean pour boolean

Character pour char

Java 38 / 90
Variables Typage statique

Java

Les emballages (wrapper) de types primitifs (types objets) en Java

Byte pour byte

Short pour short

Long pour long

Integer pour int


HI©
Float pour float
MOU
©
Double pour

double

Boolean pour

boolean Character

pour char
Java 38 / 90
Variables Typage statique

Java
Exemple d’utilisation d’une châıne de caractère
String string = new String();
string = "bonjour";
System.out.println(string); // affiche bonjour
©

Java 39 / 90
Variables Typage statique

Java
Exemple d’utilisation d’une châıne de caractère
String string = new String();
string = "bonjour";
System.out.println(string); // affiche bonjour
©
On peu aussi faire
String string = new String("bonjour");
System.out.println(string); // affiche bonjour

Java 39 / 90
Variables Typagestatique

Java
Exemple d’utilisation d’une châıne de caractère
String string = new String();
string = "bonjour";
System.out.println(string); // affiche bonjour
©
On peu aussi faire
String string = new String("bonjour");
System.out.println(string); // affiche bonjour

Ou encore
String string = "bonjour";
System.out.println(string); // affiche bonjour

Java 39 / 90
Variables Typage statique

Java
Exemple d’utilisation d’une châıne de caractère
String string = new String();
string = "bonjour";
System.out.println(string); // affiche bonjour
©
On peu aussi faire
String string = new String("bonjour");
System.out.println(string); // affiche bonjour

Ou encore
String string = "bonjour";
System.out.println(string); // affiche bonjour

Une châıne de caractère doit être située entre deux "contenu"


Java 39 / 90
Variables Typagestatique

Java

Pourquoi les types primitifs et les types objets ?

Les types primitifs sont moins couˆteux en mémoire


Les types objets offrent plusieurs méthodes a`appliquer sur les
H
valeurs : conversion, nombre de caractère...

M
Toutes les classes OU contiennent une méthode
wrappers
©
(TypeObjet.parseTypeSimple(string)) qui permet de
convertir une chaine de caractère en type primitif de cette classe

Java 40 / 90
Variables Typage statique

Java
Quelques méthodes de la classe String

length() : retourne le nombre de caractère de la châıne.

indexOf(x) : retourne l’indice de la première occurrence de la valeur de x


dans la châıne, -1 sinon.

contains() : retourne true si la châıne contient x, false sinon.


charAt(i) : retourne le caractère d’indice i dans la châıne.
H
substring(i,j) : permetU
MOj - 1
d’extraire une sous-châıne de la châıne a` partir de
l’indice i jusqu’au l’indice
© : permet de comparer la châıne a` str et retourne true en
equals(str)
cas d’égalité, false sinon.

replace(old,new) : permet de remplacer toute occurrence de la châıne old


dans la châıne courante par new et retourne la nouvelle châıne

...

Java 41 / 90
Variables Typage statique

Java

Exemple : replace(old,new)
String string = "bonjour les bons jours";
String string2 = string.replace("jour", "soir");
System.out.println(string2); ©
// bonsoir les bons soirs

Java 42 / 90
Variables Typage statique

Java

Exemple : replace(old,new)
String string = "bonjour les bons jours";
String string2 = string.replace("jour", "soir");
System.out.println(string2); ©
// bonsoir les bons soirs

Exemple : indexOf(str,fromIndex)
String string = "bonjour les bons jours";
int pos = string.indexOf("bon", 5);
System.out.println(pos);
// affiche 12

Java 42 / 90
Variables Typage statique

Java
Exemple de conversion d’une châıne de caractère
String string = "2";
byte z = Byte.parseByte(string);
System.out.println(z); // affiche 2

Java 43 / 90
Variables Typage statique

Java
Exemple de conversion d’une châıne de caractère
String string = "2";
byte z = Byte.parseByte(string);
System.out.println(z); // affiche 2

Ceci déclenche une exception (arrêt d’exécution)


String string = "a";
byte z = Byte.parseByte(string);
©
System.out.println(z);

Le résultat
Exception in thread "main" java.lang.
NumberFormatException: For input string: "a"

Java 43 / 90
Variables Typage statique

Java

Exemple de conversion de Integer en String


Integer x = 2;
String string = x.toString(); MOU HI
System.out.println(string); // affiche 2

Java 44 / 90
Variables Typage statique

Java
Quatre méthodes pour convertir int en String
int y = 3;
String chaine =((Integer) y).toString();
System.out.println(chaine); // affiche 3

int z = 4;
©
String str = Integer.toString(z);
System.out.println(str); // affiche 4MOU HI
int t = 5;
©
String s = String.valueOf(t);
System.out.println(s); // affiche 5

int u = 6;
String s = "" + u;
System.out.println(s); // affiche 6
Java 45 / 90
Variables Typage statique

Java

Attention, le cast entre deux types incompatibles n’est


pas autorisé
int z = 4;
String str =(String) z;
System.out.println(str);

Java 46 / 90
Variables Typagestatique

Java

Pas besoin de convertir d’un type simple vers son wrapper (ou
inversement)
Integer j = 2;
int k = j;
System.out.println(k); // affiche 2 MOU HI
int l = 3;
©
Integer m = l;
System.out.println(m); // affiche 3

Java 47 / 90
Variables Typage dynamique

Java

Déclarer une variable avec le mot-clé var


var nomVariable = valeurInitiale;

Java 48 / 90
Variables Typage dynamique

Java

Déclarer une variable avec le mot-clé var


var nomVariable = valeurInitiale;

Remarque
Une variable déclarée avec le mot-clé var

doit être initialisée


a un type déterminé en fonction de sa valeur initiale
ne peut changer de type

Java 48 / 90
Variables Typage dynamique

Java

Exemple
var x = 10;

Java 49 / 90
Variables Typage dynamique

Java

Exemple
var x = 10;

Ceci génère une erreur

©
x = "bonjour";

Java 49 / 90
Opérations sur les variables

Java

Pour les variables numériques (int, float...)

= : affectation
+ : addition

- : soustraction
HI©
* : multiplicationMO
U
©
/ : division
% : reste de la division

Java 50 / 90
Opérations sur les variables

Java

Quelques raccourcis
i = i + 1 ⇒ i++;
i = i - 1 ⇒ i--;
HI©
OU
i = i + 2 ⇒ i += 2;
i = i - 2 ⇒M
i -= 2;

...
©

Java 51 / 90
Opérations sur les variables

Java

Exemple de post-incrémentation
int i = 2;
int j = i++;
System.out.println(i); // affiche 3 ©
System.out.println(j); // affiche 2

Java 52 / 90
Opérations sur les variables

Java

Exemple de post-incrémentation
int i = 2;
int j = i++;
System.out.println(i); // affiche 3 ©
System.out.println(j); // affiche 2

Exemple de pre-incrémentation
int i = 2;
int j = ++i;
System.out.println(i); // affiche 3
System.out.println(j); // affiche 3

Java 52 / 90
Opérations sur les variables

Java

L’opérateur + pour concaténer deux châınes de caractère


String string = "bon";
String string2 = "jour";
System.out.println(string + string2);
MOU HI
// affiche bonjour

Java 53 / 90
Lecture d’une saisie

Java

Pour lire une valeur saisie par l’utilisateur dans la console


il faut utiliser la classe Scanner

il faut préciser le type de la valeur a`récupérer

Java 54 / 90
Lecture d’une saisie

Java
Instancier la classe Scanner
Scanner scanner = new Scanner(System.in);

Java 55 / 90
Lecture d’une saisie

Java
Instancier la classe Scanner
Scanner scanner = new Scanner(System.in);

La classe Scanner est signalée en rouge, il faut l’importer


import java.util.Scanner;

Java 55 / 90
Lecture d’une saisie

Java
Instancier la classe Scanner
Scanner scanner = new Scanner(System.in);

La classe Scanner est signalée en rouge, il faut l’importer


import java.util.Scanner;

Exemple de lecture d’un entier


©
int i = scanner.nextInt();

Java 55 / 90
Lecture d’une saisie

Java
Instancier la classe Scanner
Scanner scanner = new Scanner(System.in);

La classe Scanner est signalée en rouge, il faut l’importer


import java.util.Scanner;

Exemple de lecture d’un entier


©
int i = scanner.nextInt();

Fermer le scanner
scanner.close();

Java 55 / 90
Lecture d’une saisie

Java

Remarques

Pour lire une châıne de caractère, il faut utiliser la méthode


next() ou nextLine()
H I©
Pour lire un nombre réel,U
M O il faut utiliser la méthode nextFloat()
...
©

Java 56 / 90
Lecture d’une saisie

Java
Exemple avec next()
Scanner scanner = new Scanner(System.in);
// si on saisit "bonjour tout le monde"
String string = scanner.next();
System.out.println(string); ©
// affiche bonjour

Java 57 / 90
Lecture d’une saisie

Java
Exemple avec next()
Scanner scanner = new Scanner(System.in);
// si on saisit "bonjour tout le monde"
String string = scanner.next();
System.out.println(string); ©
// affiche bonjour

Exemple avec nextLine()


Scanner scanner = new Scanner(System.in);
// si on saisit "bonjour tout le monde"
String string = scanner.nextLine();
System.out.println(string);
// affiche bonjour tout le monde

Java 57 / 90
Lecture d’une saisie

Java
À chaque appel a` next(), on récupère le token suivant
Scanner scanner = new Scanner(System.in);
// si on saisit "bonjour tout le monde"
String string = scanner.next();
String s = scanner.next(); ©
System.out.println(s);
// affiche tout

Java 58 / 90
Lecture d’une saisie

Java
À chaque appel à next(), on récupère le token suivant
Scanner scanner = new Scanner(System.in);
// si on saisit "bonjour tout le monde"
String string = scanner.next();
String s = scanner.next(); ©
System.out.println(s);
// affiche tout

Le code suivant déclenche une exception car on ne peut affecter


la châıne "tout" à un entier
Scanner scanner = new Scanner(System.in);
// si on saisit "bonjour tout le monde"
String string = scanner.next();
int v = scanner.nextInt();
System.out.println(v);
Java 58 / 90
Lecture d’une saisie

Java

Il n’existe pas une méthode spécifiques aux caractères, mais on


peut faire
Scanner scanner = new Scanner(System.in);
String string = scanner.next();
char c = scanner.next().charAt(0);
System.out.println(c);

Java 59 / 90
Lecture d’une saisie

Java

On peut aussi utiliser les méthodes statiques de la classe Math


Math.abs(x) : retourne la valeur absolue de x

Math.pow(x,y) : retourne la x puissance y


Math.max(x,y) : retourne le max de x et y

HI©
Math.min(x,y) : retourne le min de x et y
U
MO la racine carré de x
Math.sqrt(x) : retourne

©
Math.floor(x), Math.ceil(x) et Math.round(x) :
retournent l’arrondi de x
Math.random() : retourne une valeur aléatoire entre 0 et 1
...

Java 60 / 90
Lecture d’une saisie

Java

Exemple avec Math.floor(x), Math.ceil(x) et


Math.round(x)
System.out.println(Math.round(1.9)); // affiche 2
System.out.println(Math.round(1.5)); // affiche 2
©
System.out.println(Math.round(1.4)); // affiche 1
MOU HI
System.out.println(Math.ceil(1.9)); // affiche 2
System.out.println(Math.ceil(1.5)); // affiche 2
System.out.println(Math.ceil(1.4)); // affiche 2
©
System.out.println(Math.floor(1.9)); // affiche 1
System.out.println(Math.floor(1.5)); // affiche 1
System.out.println(Math.floor(1.4)); // affiche 1

Java 61 / 90
Structures conditionnelles et itératives if

Java

Exécuter si une condition est vraie


if (condition) {
...
}

Java 62 / 90
Structures conditionnelles et itératives if

Java

Exécuter si une condition est vraie


if (condition) {
...
}

Exemple
var x = 3;
if (x >= 0) {
©
System.out.println(x + " est positif");
}

Java 62 / 90
Structures conditionnelles et itératives if

Java

Exécuter si une condition est vraie


if (condition) {
...
}

Exemple
var x = 3;
if (x >= 0) {
©
System.out.println(x + " est positif");
}

Pour les conditions, on utilise les opérateurs de comparaison

Java 62 / 90
Structures conditionnelles et itératives if

Java

Opérateurs de comparaison
== : pour tester l’égalité
!= : pour tester l’inégalité

> : supérieur à
HI©
OU
< : inférieur à
>= : supérieur ouM égal à
©
<= : inférieur ou égal à

Java 63 / 90
Structures conditionnelles et itératives if

Java

Opérateurs de comparaison
== : pour tester l’égalité
!= : pour tester
l’inégalité
> : supérieur a`
HI©
U
< : inférieur a`
MO
©
>= : supérieur ou égal a`
<= : inférieur ou égal à

En java, on ne peut comparer deux valeurs de type incompatible

Java 63 / 90
Structures conditionnelles et itératives if ... else

Java
Exécuter un premier bloc si une condition est vraie, un deuxième sinon (le bloc else)

if (condition1) {
...
}
else {

}
...
©

Java 64 / 90
Structures conditionnelles et itératives if ... else

Java
Exécuter un premier bloc si une condition est vraie, un deuxième sinon (le bloc else)

if (condition1) {
...
}
else {

}
...
©

Exemple

var x = 3;
if (x > 0)
{ ©
System.out.println(x + " est strictement positif");
}
else
{
System.out.println(x + " est n´egatif ou nul");
}

Java 64 / 90
Structures conditionnelles et itératives if ... else if ... else

Java
On peut enchâıner les conditions avec else if (et avoir un
troisième bloc voire ... un nième)
if (condition1)
{
... ©
}
else if (condition2)
{ MOU HI
...
}
... ©
else
{
...
}

Java 65 / 90
Structures conditionnelles et itératives if ... else if ... else

Java

Exemple
var x = -3;
if (x > 0)
{
System.out.println(x + " est strictement positif");
©
}
else if (x < 0)
{
MOU HI
System.out.println(x + " est strictement n´egatif");

©
}
else
{
System.out.println(x + " est nul");
}

Java 66 / 90
Structures conditionnelles et itératives if ... else if ... else

Java

Opérateurs logiques

&& : et

|| : ou

! : non

Java 67 / 90
Structures conditionnelles et itératives if ... else if ... else

Java

Opérateurs logiques

&& : et

|| : ou

! : non

Tester plusieurs conditions (en utilisant des opérateurs logiques)


if (condition1 && !condition2 || condition3){
...
}
[else ...]

Java 67 / 90
Structures conditionnelles et itératives switch

Java

Structure conditionnelle switch : syntaxe


switch (nomVariable) {
case constante-1:
groupe-instructions-1;
break; ©
case constante-2:
groupe-instructions-2;
break; MOU HI
...
case constante-N:
©
groupe-instructions-N;
break;
default:
groupe-instructions-par-d´efaut;
}

Java 68 / 90
Structures conditionnelles et itératives switch

Java

Remarques
Le switch permet seulement de tester l’égalité
Le break permet de quitter le switch une fois un bloc case
exécuté
H I©
U
MO plusieurs case
Il est possible de regrouper
Le bloc ©default est facultatif, il sera exécutési la valeur de la
variable ne correspond a`aucune constante de case

Java 69 / 90
Structures conditionnelles et itératives switch

Java
Structure conditionnelle avec switch
int x = 5;
switch (x) {
case 1:
System.out.println("un"); ©
break;
case 2:
System.out.println("deux"); MOU HI
break;
case 3:
©
System.out.println("trois");
break;
default:
System.out.println("autre");
}

Java 70 / 90
Structures conditionnelles et itératives switch

Java
Un multi-case pour un seul traitement
var x = 5;
switch (x) {
case 1:
case 2:
System.out.println("un ou deux");
©
break;
case 3:
System.out.println("trois"); MOU HI
break;
case 4:
case 5: ©
System.out.println("quatre ou cinq");
break;
default:
System.out.println("autre");
}

Java 71 / 90
Structures conditionnelles et itératives switch

Java

La variable dans switch peut être


de types simples : int, short, byte et char


de type wrappers correspondants : Integer, Short, Byte et
Character
U H
MO
de type énumération depuis Java 6
de type©châıne de caractère depuis Java 7

Java 72 / 90
Structures conditionnelles et itératives switch

Java
Si on supprime un break
String x = "2";
switch (x) {
case "1":
System.out.println("un"); ©
break;
case "2":
System.out.println("deux");
MOU HI
case "3":

©
System.out.println("trois");
break;
default:
System.out.println("autre");
}
// affiche deux trois

Java 73 / 90
Structures conditionnelles et itératives Expression ternaire

Java

Simplifions l’écriture avec l’expression ternaire


int x = 2;
String type = (x % 2 == 0) ? "pair" : "impair"; MOU HI
System.out.println(type); // affiche pair

Java 74 / 90
Structures conditionnelles et itératives while

Java

Boucle while : a`chaque itération on teste si la condition est


vraie avant d’accéder aux traitements
while (condition[s]) {
...
} MOU HI

Java 75 / 90
Structures conditionnelles et itératives while

Java

Boucle while : a`chaque itération on teste si la condition est


vraie avant d’accéder aux traitements
while (condition[s]) {
...
} MOU HI

Attention aux boucles infinies, vérifier que la condition d’arrêt sera bien
atteinte après un certain nombre d’itérations.

Java 75 / 90
Structures conditionnelles et itératives while

Java
Exemple
var i = 0;
while (i < 5) {
System.out.println(i);
i++; ©
}

Java 76 / 90
Structures conditionnelles et itératives while

Java
Exemple
var i = 0;
while (i < 5) {
System.out.println(i);
i++; ©
}

Le résultat est
0
1
2
3
4

Java 76 / 90
Structures conditionnelles et itératives do ... while

Java

La Boucle do ... while exécute le bloc au moins une fois ensuite


elle vérifie la condition
do {

}
...
MOU HI
while (condition[s]);

Java 77 / 90
Structures conditionnelles et itératives do ... while

Java

La Boucle do ... while exécute le bloc au moins une fois ensuite


elle vérifie la condition
do {

}
...
MOU HI
while (condition[s]);

Attention aux boucles infinies, vérifier que la condition d’arrêt sera bien
atteinte après un certain nombre d’itérations.

Java 77 / 90
Structures conditionnelles et itératives do ... while

Java
Exemple
var i = 0;
do {
System.out.println(i);
i++; ©
} while (i < 5);

Java 78 / 90
Structures conditionnelles et itératives do ... while

Java
Exemple
var i = 0;
do {
System.out.println(i);
i++; ©
} while (i < 5);

Le résultat est
0
1
2
3
4

Java 78 / 90
Structures conditionnelles et itératives for

Java

Boucle for
for (initialisation; condition[s]; incrementation) {
...
}

Java 79 / 90
Structures conditionnelles et itératives for

Java

Boucle for
for (initialisation; condition[s]; incrementation) {
...
}

Attention aux boucles infinies si vous modifiez la valeur du compteur a`


l’intérieur de la boucle.

Java 79 / 90
Structures conditionnelles et itératives for

Java

Exemple
for (var i = 0; i < 5; i++) {
System.out.println(i);
} ©

Java 80 / 90
Structures conditionnelles et itératives for

Java

Exemple
for (var i = 0; i < 5; i++) {
System.out.println(i);
} ©

Le résultat est
0
1 ©
2
3
4

Java 80 / 90
Structures conditionnelles et itératives for

Java
Exercice

écrire un code Java qui permet d’afficher les nombres pairs compris entre 0 et 10.

Java 81 / 90
Structures conditionnelles et itératives for

Java
Exercice

écrire un code Java qui permet d’afficher les nombres pairs compris entre 0 et 10.

Première solution
for (var i = 0; i < 10; i++) {
if (i % 2 == 0) {
System.out.println(i);
}
}

Java 81 / 90
Structures conditionnelles et itératives for

Java
Exercice

écrire un code Java qui permet d’afficher les nombres pairs compris entre 0 et 10.

Première solution
for (var i = 0; i < 10; i++) {
if (i % 2 == 0) {
System.out.println(i);
}
}

Deuxième solution
for (var i = 0; i < 10; i += 2) {
System.out.println(i);
}
Java 81 / 90
Tableaux

Java

En java, les tableaux sont statiques

Tous les éléments doivent avoir le même type


Il faut préciser une taille qu’on ne peut dépasser

Java 82 / 90
Tableaux

Java

En java, les tableaux sont statiques

Touslesélémentsdoiventavoirlemêmetype
Il faut préciser une taille qu’on ne peut dépasser

Déclaration d’un tableau : syntaxe


type [] nomTableau = new type[taille];

Java 82 / 90
Tableaux

Java

En java, les tableaux sont statiques

Touslesélémentsdoiventavoirlemêmetype
Il faut préciser une taille qu’on ne peut dépasser

Déclaration d’un tableau : syntaxe


type [] nomTableau = new type[taille];

Déclaration d’un tableau d’entier de taille 2 : exemple


int [] tab = new int[2];

Java 82 / 90
Tableaux

Java
Affectation de valeurs aux cases de tableau
tab[0] = 5;
tab[1] = 3;

Java 83 / 90
Tableaux

Java
Affectation de valeurs aux cases de tableau
tab[0] = 5;
tab[1] = 3;

Ceci déclenche une exception


tab[2] = 10;

L’exception
Exception in thread "main" java.lang.
ArrayIndexOutOfBoundsException: 2
at org.eclipse.classes.FirstClass.main(
FirstClass.java:11)

Java 83 / 90
Tableaux

Java

On peut faire une déclaration + une initialisation


int [] tab = { 5, 3 };

Comme si la taille du tableau a été fixée a` deux

Java 84 / 90
Tableaux

Java

On peut faire une déclaration + une initialisation


int [] tab = { 5, 3 };

Comme si la taille du tableau a été fixée a` deux

Donc, ceci déclenche aussi une exception


tab[2] = 10;

L’exception
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 2
at org.eclipse.classes.FirstClass.main(FirstClass.java:11)

Java 84 / 90
Tableaux

Java

Pour parcourir le tableau


for (int i = 0; i < tab.length; i++){

}
System.out.println(tab[i]); ©

Java 85 / 90
Tableaux

Java

Pour parcourir le tableau


for (int i = 0; i < tab.length; i++){

}
System.out.println(tab[i]); ©

Ou` encore la version simplifiée (foreach)


for (int elt : tab){
System.out.println(elt);
}

Java 85 / 90
Constantes

Java

Une constante

un élément qui ne peut changer de valeur

Java 86 / 90
Constantes

Java

Une constante

un élément qui ne peut changer de valeur

Pour déclarer une constante

il faut utiliser le mot-clé final

Java 86 / 90
Constantes

Java

Une constante

un élément qui ne peut changer de valeur

Pour déclarer une constante

il faut utiliser le mot-clé final

Déclaration d’une constante


final double PI = 3.1415;

Java 86 / 90
Constantes

Java

Une constante

un élément qui ne peut changer de valeur

Pour déclarer une constante

il faut utiliser le mot-clé final

Déclaration d’une constante


final double PI = 3.1415;

L’instruction suivante ne peut être acceptée


PI = 5;

Java 86 / 90
Méthodes

Java
Une méthode

caractérisée par : visibilité [+ static] + type de retour + nomMéthode([les


paramètres]) + son implémentation

Java 87 / 90
Méthodes

Java
Une méthode

caractérisée par : visibilité [+ static] + type de retour + nomMéthode([les


paramètres]) + son implémentation

Exemple de déclaration d’une méthode


public static int somme (int a, int b) {
return a + b;
}

Java 87 / 90
Méthodes

Java
Une méthode

caractérisée par : visibilité [+ static] + type de retour + nomMéthode([les


paramètres]) + son implémentation

Exemple de déclaration d’une méthode


public static int somme (int a, int b) {
return a + b;
}

Exemple d’appel d’une méthode


System.out.println(somme(2, 3));
// affiche 5

Java 87 / 90
Méthodes

Java
Déclaration de méthode avec un nombre indéterminé de paramètres (varargs)
public static int somme(int... tab) {
int res = 0;
for (int elt : tab)

©
res += elt;
return res;
}

Java 88 / 90
Méthodes

Java
Déclaration de méthode avec un nombre indéterminé de paramètres (varargs)
public static int somme(int... tab) {
int res = 0;
for (int elt : tab)

©
res += elt;
return res;
}

Exemple d’appel

©
System.out.println(somme(2));
// affiche 2
System.out.println(somme(2, 3));
// affiche 5
System.out.println(somme(2, 3, 5));
// affiche 10
System.out.println(somme(2, 3, 5, 9));
// affiche 19

Java 88 / 90
Méthodes

Java

Remarques
varargs est disponible depuis Java 5.

H I©
On ne peut avoir qu’un seul varargs par méthode

M OU
Le paramètre varargs doit être le dernier dans la liste de

©
paramètres d’une méthode

Java 89 / 90
Méthodes

Java

Remarques
Comme Java supporte la surcharge de méthodes

H
Pas de paramètres optionnelsI©
Pas de valeur parM OUpour les paramètres
défaut
©

Java 90 / 90

Vous aimerez peut-être aussi