Vous êtes sur la page 1sur 69

Formation :

Les bonnes pratiques Java

Formateur
Mr. Lakhdhar Khalil
Directeur de Protech-IT
Contact: khalillakhdhar@protech-it.org
Plan

• Présentation du formateur
• Le plan de formation
• Objectifs de la formation
• Public concerné
• Connaissances requises
• Documents utiles

2
Présentation du formateur

Lakhdhar Khalil
▪ Enseignant à université Suptech
▪ Développeur sénior et fondateur de protech-it/ATC depuis 2013
▪ Fondateur de l’association formateurs sans frontiéres

3
Plan de la formation

1. Etude approfondie de tous les mots-clés


2. Lesniveaux devisibilité.
3. LesInitializers.
4. LesClassloader
5. Interfaces et génériques

4
Objectifs pédagogiques

▪ Pratiquer le Java
▪ Maitrise de base de java
▪ Le codage de base
▪ La gestion de mêmoire et base de données en java
▪ Introduire les cadres en java et java EE

5
Public concerné

▪ Développeurs
▪ Assistant
▪ Full stack developpers

6
Connaissance requise

• Connaissances de base en informatique et algorithmique.

7
C’est quoi java?

Java est un langage de programmation et une plate -forme . Java est un langage de
programmation de haut niveau, robuste, orienté objet et sécurisé.
Java a été développé par Sun Microsystems (qui est maintenant la filiale d'Oracle)
en 1995. James Gosling est connu comme le père de Java. Avant Java, son nom
était Oak . Comme Oak était déjà une société enregistrée, James Gosling et son
équipe ont changé le nom d'Oak en Java.
Plate -forme : Tout environnement matériel ou logiciel dans lequel un programme
s'exécute est appelé plate-forme. Étant donné que Java possède un environnement
d'exécution (JRE) et une API, il s'appelle une plate-forme.

8
Avant de commencer

• Quelle sont les langages informatique que vous connaissez?


• C’est quoi un langage de programmation?
• Quelle sont les types de langages de programmation?
• Est ce que tout langage informatique est un langage de programmation
• C’est quoi la P.O.O

Logiciel utiles netbeans:


https://netbeans.apache.org/download/nb124/nb124.html
JDK
https://www.techspot.com/downloads/downloadnow/5553/?evp=cc1002b8f2423
1deaf82043061a06561&file=6310 9
C’est quoi java?
Application
Selon Sun, 3 milliards d'appareils exécutent Java. Il existe de nombreux appareils
sur lesquels Java est actuellement utilisé. Certains d'entre eux sont les suivants :
1.Applications de bureau telles qu'acrobat reader, lecteur multimédia, antivirus,
etc.
2.Applications Web telles que irctc.co.in, javatpoint.com, etc.
3.Applications d'entreprise telles que les applications bancaires.
4.Mobile
5.Système embarqué
6.Carte à puce
7.Robotique
8.Games, etc.
10
Types d'applications Java
Il existe principalement 4 types d'applications qui peuvent être créées à l'aide de la programmation Java :
1) Standalone Application
Les applications autonomes sont également appelées applications de bureau ou applications basées sur
des fenêtres. Ce sont des logiciels traditionnels que nous devons installer sur chaque machine. Des
exemples d'applications autonomes sont le lecteur multimédia, l'antivirus, etc. AWT et Swing sont utilisés
en Java pour créer des applications autonomes.
2) Web Application
Une application qui s'exécute côté serveur et crée une page dynamique est appelée une application
Web. Actuellement, les technologies Servlet , JSP , Struts , Spring , Hibernate , JSF , etc. sont utilisées pour
créer des applications Web en Java.
3) Application d'entreprise
Une application qui est distribuée par nature, comme les applications bancaires, etc. est appelée une
application d'entreprise. Il présente des avantages tels que la sécurité de haut niveau, l'équilibrage de
charge et le clustering. En Java, EJB est utilisé pour créer des applications d'entreprise.
4) Mobile Application
Une application créée pour les appareils mobiles est appelée une application mobile. Actuellement,
Android et Java ME sont utilisés pour créer des applications mobiles.

11
Java Platforms / Editions
Il existe 4 plates-formes ou éditions de Java :
1) Java SE (Java Standard Edition)
C'est une plate-forme de programmation Java. Il comprend des API de programmation Java telles que
java.lang, java.io, java.net, java.util, java.sql, java.math, etc. Il comprend des sujets de base tels que
OOPs, String , Regex, Exception, Inner classes, Multithreading, Flux d'E/S, mise en réseau, AWT, Swing,
réflexion, collecte, etc.
2) Java EE (Java Enterprise Edition)
Il s'agit d'une plate-forme d'entreprise principalement utilisée pour développer des applications Web et
d'entreprise. Il est construit sur la plate-forme Java SE. Il comprend des sujets tels que Servlet, JSP, Web
Services, EJB, JPA , etc.
3) Java ME (Java Micro Edition)
Il s'agit d'une micro plateforme dédiée aux applications mobiles.
4) JavaFX
Il est utilisé pour développer des applications Internet riches. Il utilise une API d'interface utilisateur
légère.D

12
Histoire de Java
L'histoire de Java est très intéressante. Java a été conçu à l'origine pour la télévision interactive, mais
c'était une technologie trop avancée pour l'industrie de la télévision numérique par câble à
l'époque. L'histoire de Java commence avec la Green Team. Les membres de l'équipe Java (également
connue sous le nom de Green Team) ont lancé ce projet afin de développer un langage pour les appareils
numériques tels que les décodeurs, les téléviseurs, etc. Cependant, il convenait mieux à la programmation
Internet. Plus tard, la technologie Java a été incorporée par Netscape.
Les principes de création de la programmation Java étaient "Simple, Robuste, Portable, Indépendant de la
plate-forme, Sécurisé, Haute Performance, Multithread, Architecture Neutre, Orienté Objet, Interprété et
Dynamique". java a été développé par James Gosling, connu comme le père de Java, en 1995. James
Gosling et les membres de son équipe ont lancé le projet au début des années 90.
Actuellement, Java est utilisé dans la programmation Internet, les appareils mobiles, les jeux, les solutions
de commerce électronique, etc. Les points suivants décrivent l'histoire de Java.
1) James Gosling , Mike Sheridan et Patrick Naughton ont lancé le projet de langage Java en juin 1991. La
petite équipe d'ingénieurs solaires s'appelait Green Team .
2) Initialement, il a été conçu pour les petits systèmes intégrés dans les appareils électroniques tels que les
décodeurs.
3) Premièrement, il s'appelait "Greentalk" par James Gosling, et l'extension de fichier était .gt.
4) Après cela, il s'appelait Oak et a été développé dans le cadre du projet Green.
13
Fonctionnalités de Java

L'objectif principal de la création du langage


de programmation Java était d'en faire un langage de
programmation portable, simple et sécurisé. En
dehors de cela, il existe également d'excellentes
fonctionnalités qui jouent un rôle important dans la
popularité de cette langue. Les fonctionnalités de Java
sont également connues sous le nom de mots à la
mode Java.
Une liste des fonctionnalités les plus importantes du
langage Java est donnée ci-dessous.

14
Simple
Java est très facile à apprendre et sa syntaxe est simple, propre et facile à comprendre. Selon Sun
Microsystem, le langage Java est un langage de programmation simple car :
•La syntaxe Java est basée sur C++ (donc plus facile pour les programmeurs de l'apprendre après C++).
•Java a supprimé de nombreuses fonctionnalités compliquées et rarement utilisées, par exemple, les
pointeurs explicites, la surcharge des opérateurs, etc.
•Il n'est pas nécessaire de supprimer les objets non référencés car il existe un Garbage Collection
automatique en Java.
Orienté objet
Java est un langage de programmation orienté objet. Tout en Java est un objet. Orienté objet signifie
que nous organisons notre logiciel comme une combinaison de différents types d'objets qui intègrent à
la fois des données et des comportements.
•La programmation orientée objet (POO) est une méthodologie qui simplifie le développement et la
maintenance de logiciels en fournissant certaines règles.
Sécurisé
Java est surtout connu pour sa sécurité. Avec Java, nous pouvons développer des systèmes sans
virus. Java est sécurisé car :
•Pas de pointeur explicite
•Les programmes Java s'exécutent dans un bac à sable de machine virtuelle

15
•Classloader : Classloader en Java fait partie de l'environnement d'exécution Java (JRE) qui est utilisé
pour charger dynamiquement des classes Java dans la machine virtuelle Java. Il ajoute de la sécurité en
séparant le package pour les classes du système de fichiers local de celles qui sont importées à partir
de sources réseau.
•Vérificateur de bytecode : il vérifie les fragments de code à la recherche de code illégal susceptible de
violer les droits d'accès aux objets.
•Gestionnaire de sécurité : il détermine les ressources auxquelles une classe peut accéder, telles que la
lecture et l'écriture sur le disque local.
Le langage Java fournit ces sécurités par défaut. Une certaine sécurité peut également être fournie
explicitement par un développeur d'application via SSL, JAAS, la cryptographie, etc.
Robuste
Le minage anglais de Robust est fort. Java est robuste car :
•Il utilise une forte gestion de la mémoire.
•Il y a un manque de pointeurs qui évite les problèmes de sécurité.
•Java fournit une récupération de place automatique qui s'exécute sur la machine virtuelle Java pour
se débarrasser des objets qui ne sont plus utilisés par une application Java.
•Il existe une gestion des exceptions et un mécanisme de vérification de type en Java. Tous ces points
rendent Java robuste.

16
Concepts Java OOP

Dans cette page, nous allons découvrir les bases des POO. La programmation orientée objet est un
paradigme qui fournit de nombreux concepts, tels que l' héritage , la liaison de données ,
le polymorphisme , etc.
Simula est considéré comme le premier langage de programmation orienté objet. Le paradigme de
programmation où tout est représenté comme un objet est connu comme un langage de
programmation véritablement orienté objet.
OOP (Système de Programmation Orienté Objet)
Objet désigne une entité du monde réel telle qu'un stylo, une chaise, une table, un ordinateur, une
montre, etc. La programmation orientée objet est une méthodologie ou un paradigme permettant de
concevoir un programme à l'aide de classes et d'objets. Il simplifie le développement et la
maintenance des logiciels en fournissant certains concepts :
•Objet
•Classes
•Héritage
•Polymorphisme
•Abstraction
•Encapsulation

17
Outre ces concepts, il existe d'autres termes qui sont utilisés dans la conception orientée objet :
•Couplage
•Cohésion
•Association
•Agrégation
•Composition

18
Objet
Toute entité qui a un état et un comportement est appelée
objet. Par exemple, une chaise, un stylo, une table, un clavier, un
vélo, etc. Cela peut être physique ou logique. Un objet peut être
défini comme une instance d'une classe. Un objet contient une
adresse et occupe de l'espace en mémoire. Les objets peuvent
communiquer sans connaître les détails des données ou du code
de l'autre. La seule chose nécessaire est le type de message
accepté et le type de réponse renvoyé par les objets.
Exemple : Un chien est un objet parce qu'il a des états comme la
couleur, le nom, la race, etc. ainsi que des comportements
comme remuer la queue, aboyer, manger, etc.
Classe:
La collection d'objets est appelée classe. C'est une entité logique.
Une classe peut également être définie comme un plan à partir
duquel vous pouvez créer un objet individuel. La classe ne
consomme pas d'espace.

19
Héritage
Lorsqu'un objet acquiert toutes les propriétés et tous les
comportements d'un objet parent , on parle d'héritage. Il fournit
la réutilisabilité du code. Il est utilisé pour obtenir un
polymorphisme d'exécution.
Polymorphisme
Si une tâche est effectuée de différentes manières , on parle de
polymorphisme. Par exemple : pour convaincre le client
différemment, pour dessiner quelque chose, par exemple, une
forme, un triangle, un rectangle, etc.
En Java, nous utilisons la surcharge de méthode et le
remplacement de méthode pour obtenir le polymorphisme.
Un autre exemple peut être de dire quelque chose; par exemple,
un chat miaule, un chien aboie, etc.
Abstraction
Masquer les détails internes et afficher les fonctionnalités est
connu sous le nom d'abstraction. Par exemple appel
téléphonique, nous ne connaissons pas le traitement interne.
En Java, nous utilisons une classe abstraite et une interface pour
réaliser l'abstraction. 20
Avantage des POO par rapport
au langage de programmation
orienté procédure
1) La POO facilite le
développement et la Figure : Représentation des données dans la
maintenance, alors que, dans programmation orientée procédure
un langage de programmation
orienté procédure, il n'est pas
facile de gérer si le code grossit
à mesure que la taille du projet
augmente.
2) La POO permet de masquer
les données, alors que, dans un
langage de programmation
orienté procédure, les données
globales sont accessibles de
n'importe où.
3) OOPs offre la possibilité de simuler des Figure : Représentation des données dans la
événements du monde réel beaucoup plus programmation orientée objet
efficacement. Nous pouvons fournir la solution
du problème du mot réel si nous utilisons le 21
langage de programmation orienté objet.
Objets et classes en Java

Dans cette page, nous allons en apprendre davantage sur les objets et les classes Java. Dans la
technique de programmation orientée objet, nous concevons un programme utilisant des objets et des
classes.
Un objet en Java est à la fois une entité physique et logique, alors qu'une classe en Java n'est qu'une
entité logique.
Qu'est-ce qu'un objet en Java

Une entité qui a un état et un comportement est connue sous le nom d'objet, par exemple une chaise,
un vélo, un marqueur, un stylo, une table, une voiture, etc. Elle peut être physique ou logique (tangible
et intangible). L'exemple d'un objet immatériel est le système bancaire.
Un objet a trois caractéristiques :
•État : représente les données (valeur) d'un objet.
•Comportement : représente le comportement (fonctionnalité) d'un objet tel que déposer, retirer, etc.
•Identité : une identité d'objet est généralement implémentée via un identifiant unique. La valeur de
l'ID n'est pas visible pour l'utilisateur externe. Cependant, il est utilisé en interne par la JVM pour
identifier chaque objet de manière unique.

22
23
Par exemple, Pen est un objet. Son nom est Reynolds ; la couleur est blanche, connue sous le nom de
son état. Il est utilisé pour écrire, donc l'écriture est son comportement.
Un objet est une instance d'une classe. Une classe est un modèle ou un plan à partir duquel des objets
sont créés. Ainsi, un objet est l'instance (résultat) d'une classe.
Définitions d'objet :
•Un objet est une entité du monde réel .
•Un objet est une entité d'exécution .
•L'objet est une entité qui a un état et un comportement .
•L'objet est une instance d'une classe .
Qu'est-ce qu'une classe en Java
Une classe est un groupe d'objets qui ont des propriétés communes. Il s'agit d'un modèle ou d'un plan
à partir duquel des objets sont créés. C'est une entité logique. Ça ne peut pas être physique.
Une classe en Java peut contenir :
•Des champs
•Méthodes
•Constructeurs
•Blocs
•Classe et interface imbriquées

24
Constructeurs en Java

En Java , un constructeur est un bloc de code similaire à la méthode. Elle est appelée lors de la création
d'une instance de la classe . Au moment de l'appel du constructeur, la mémoire de l'objet est allouée
dans la mémoire.
C'est un type spécial de méthode qui est utilisé pour initialiser l'objet.
Chaque fois qu'un objet est créé à l'aide du mot-clé new(), au moins un constructeur est appelé.
l appelle un constructeur par défaut s'il n'y a pas de constructeur disponible dans la classe. Dans ce
cas, le compilateur Java fournit un constructeur par défaut par défaut.
Il existe deux types de constructeurs en Java : le constructeur sans argument et le constructeur
paramétré.
Remarque : Il est appelé constructeur car il construit les valeurs au moment de la création de l'objet. Il
n'est pas nécessaire d'écrire un constructeur pour une classe. C'est parce que le compilateur Java crée
un constructeur par défaut si votre classe n'en a pas.
Règles de création d'un constructeur Java
Deux règles sont définies pour le constructeur.
1.Le nom du constructeur doit être le même que son nom de classe
2.Un constructeur ne doit pas avoir de type de retour explicite
3.Un constructeur Java ne peut pas être abstrait, statique, final et synchronisé

25
Remarque : Nous pouvons utiliser des modificateurs d'accès lors de la déclaration d'un
constructeur. Il contrôle la création de l'objet. En d'autres termes, nous pouvons avoir un
constructeur privé, protégé, public ou par défaut en Java.
Types de constructeurs Java
Il existe deux types de constructeurs en Java :
1.Constructeur par défaut (constructeur sans argument)
2.Constructeur paramétré
Constructeur Java par défaut
Un constructeur est appelé "Constructeur par défaut" lorsqu'il n'a aucun paramètre.
Syntaxe du constructeur par défaut :
<nom_classe>(){}
Exemple de constructeur par défaut:
//Java Program to create and call a default constructor
class Bike1{
//creating a default constructor
Bike1(){System.out.println("Bike is created");}
//main method
public static void main(String args[]){
//calling a default constructor
Bike1 b=new Bike1();
}
26
}
À quoi sert un constructeur par défaut ?
Le constructeur par défaut est utilisé pour fournir les valeurs par défaut à l'objet comme 0, null, etc.,
selon le type.
Constructeur paramétré Java
Un constructeur qui a un nombre spécifique de paramètres est appelé un constructeur paramétré.
Pourquoi utiliser le constructeur paramétré ?
Le constructeur paramétré est utilisé pour fournir différentes valeurs à des objets distincts. Cependant,
vous pouvez également fournir les mêmes valeurs.
Exemple de constructeur paramétré
Dans cet exemple, nous avons créé le constructeur de la classe Student qui a deux
paramètres. Nous pouvons avoir n'importe quel nombre de paramètres dans le constructeur.
27
//Java Program to demonstrate the use of the parameterized constructor.
class Student4{
int id;
String name;
//creating a parameterized constructor
Student4(int i,String n){
id = i;
name = n;
}
//method to display the values
void display(){System.out.println(id+" "+name);}

public static void main(String args[]){


//creating objects and passing values
Student4 s1 = new Student4(111,“test1");
Student4 s2 = new Student4(222,“teste2");
//calling method to display the values of object
s1.display();
s2.display();
}
}
28
Modificateurs d'accès en Java

Il existe deux types de modificateurs en Java : les modificateurs d'accès et les modificateurs de non-
accès .
Les modificateurs d'accès en Java spécifient l'accessibilité ou la portée d'un champ, d'une méthode,
d'un constructeur ou d'une classe. Nous pouvons modifier le niveau d'accès des champs, des
constructeurs, des méthodes et de la classe en y appliquant le modificateur d'accès.
Il existe quatre types de modificateurs d'accès Java :
1.Privé : Le niveau d'accès d'un modificateur privé est uniquement au sein de la classe. Il n'est pas
accessible depuis l'extérieur de la classe.
2.Par défaut : le niveau d'accès d'un modificateur par défaut est uniquement dans le package. Il n'est
pas accessible depuis l'extérieur du package. Si vous ne spécifiez aucun niveau d'accès, ce sera le
niveau par défaut.
3.Protected : le niveau d'accès d'un modificateur protégé est dans le package et en dehors du package
via la classe enfant. Si vous ne créez pas la classe enfant, elle ne sera pas accessible depuis l'extérieur
du package.
4.Public : Le niveau d'accès d'un modificateur public est partout. Il est accessible à partir de la classe,
de l'extérieur de la classe, de l'intérieur du package et de l'extérieur du package.

29
Il existe de nombreux modificateurs non-accès, tels que statique, abstrait, synchronisé, natif, volatil,
transitoire, etc. Ici, nous allons apprendre uniquement les modificateurs d'accès.
1) Private
Le modificateur d'accès privé n'est accessible qu'au sein de la classe.
Exemple simple de modificateur d'accès privé
Dans cet exemple, nous avons créé deux classes A et Simple. Une classe contient un membre de
données privé et une méthode privée. Nous accédons à ces membres privés depuis l'extérieur de la
classe, il y a donc une erreur de compilation.
Rôle du constructeur privé
Si vous rendez un constructeur de classe privé, vous ne pouvez pas créer l'instance de cette classe
depuis l'extérieur de la classe.
Default
Si vous n'utilisez aucun modificateur, il est traité par défaut par défaut. Le modificateur par défaut est
accessible uniquement dans package. Il n'est pas accessible depuis l'extérieur du package. Il offre plus
d'accessibilité que le privé. Mais, il est plus restrictif que protégé, et public.
Exemple de modificateur d'accès par défaut
Dans cet exemple, nous avons créé deux packages pack et mypack. Nous accédons à la classe A depuis
l'extérieur de son package, puisque la classe A n'est pas publique, elle n'est donc pas accessible depuis
l'extérieur du package.

30
3) Protected

Le modificateur d'accès protégé est accessible dans le package et en dehors du package, mais
uniquement par héritage.
Le modificateur d'accès protégé peut être appliqué sur le membre de données, la méthode et le
constructeur. Il ne peut pas être appliqué sur la classe.
Il offre plus d'accessibilité que le modificateur par défaut.
Dans cet exemple, nous avons créé les deux packages pack et mypack. Le package de la classe A du
pack est public, il est donc accessible depuis l'extérieur du package. Mais la méthode msg de ce
package est déclarée comme protégée, elle n'est donc accessible depuis l'extérieur de la classe que par
héritage.
4) Public
Le modificateur d'accès public est accessible partout. Il a la portée la plus large parmi tous les autres
modificateurs.
Get and Set Encapsulation
La signification d' Encapsulation est de s'assurer que les données "sensibles" sont cachées aux
utilisateurs. Pour y parvenir, vous devez :
•déclarer les variables/attributs de classe commeprivate
•fournir des méthodes publiques get et setprivate pour accéder et mettre à jour la valeur d'une
variable
31
Exemple :
Créons une classe Person avec:
• Nom: String
• Prenom: String
• Adresse: String
• Age: int
N.B: les attributs sont privé
Générer les GET/SET
Créer un constructeur complet pour la classe
Tester votre code à l’aide d’un public static void main

32
3) Protected

Le modificateur d'accès protégé est accessible dans le package et en dehors du package, mais
uniquement par héritage.
Le modificateur d'accès protégé peut être appliqué sur le membre de données, la méthode et le
constructeur. Il ne peut pas être appliqué sur la classe.
Il offre plus d'accessibilité que le modificateur par défaut.
Dans cet exemple, nous avons créé les deux packages pack et mypack. Le package de la classe A du
pack est public, il est donc accessible depuis l'extérieur du package. Mais la méthode msg de ce
package est déclarée comme protégée, elle n'est donc accessible depuis l'extérieur de la classe que par
héritage.
4) Public
Le modificateur d'accès public est accessible partout. Il a la portée la plus large parmi tous les autres
modificateurs.
Get and Set Encapsulation
La signification d' Encapsulation est de s'assurer que les données "sensibles" sont cachées aux
utilisateurs. Pour y parvenir, vous devez :
•déclarer les variables/attributs de classe commeprivate
•fournir des méthodes publiques get et setprivate pour accéder et mettre à jour la valeur d'une
variable
33
Héritage Java (sous-classe et super-classe)

En Java, il est possible d'hériter d'attributs et de méthodes d'une classe à une autre. Nous regroupons
le "concept d'héritage" en deux catégories :
•sous- classe (enfant) - la classe qui hérite d'une autre classe
•superclasse (parent) - la classe héritée de
Pour hériter d'une classe, utilisez le extends mot clé.
Exemple :
Héritage entre PC (marque,CPU,RAM,DISQUE,Prix)
Et laptop(PC+autonomie)
Pourquoi et quand utiliser "Héritage" ?
- C'est utile pour la réutilisabilité du code : réutilisez les attributs et les méthodes d'une classe
existante lorsque vous créez une nouvelle classe.
Astuce : Jetez également un œil au chapitre suivant, Polymorphisme , qui utilise des méthodes héritées
pour effectuer différentes tâches.
Si vous ne voulez pas que d'autres classes héritent d'une classe, utilisez le mot-
final clé :

34
Exercice:
Créer 3classes java de votre choix avec un heritage directe.
Créer une instance au moins pour chaque classe
Tester votre programme avec un PSVM

35
Instructions de contrôle Java | Flux de contrôle en Java:
Le compilateur Java exécute le code de haut en bas. Les instructions du code sont exécutées selon
l'ordre dans lequel elles apparaissent. Cependant, Java fournit des instructions qui peuvent être
utilisées pour contrôler le flux de code Java. Ces instructions sont appelées instructions de flux de
contrôle. C'est l'une des caractéristiques fondamentales de Java, qui fournit un déroulement fluide du
programme.
Java fournit trois types d'instructions de flux de contrôle.
1.Déclarations de prise de décision
1. si les déclarations
2. déclaration de commutateur
2.Instructions de boucle
1. faire en boucle
2. boucle while
3. pour la boucle
4. pour chaque boucle
3.Instructions de saut
1. déclaration de rupture
2. continuer la déclaration

36
Énoncés décisionnels :
Comme son nom l'indique, les instructions de prise de décision décident quelle instruction exécuter et
quand. Les instructions de prise de décision évaluent l'expression booléenne et contrôlent le
déroulement du programme en fonction du résultat de la condition fournie. Il existe deux types
d'instructions de prise de décision en Java, à savoir l'instruction If et l'instruction switch.
1) if :
En Java, l'instruction "if" est utilisée pour évaluer une condition. Le contrôle du programme est
détourné en fonction de la condition spécifique. La condition de l'instruction If donne une valeur
booléenne, true ou false. En Java, il existe quatre types d'instructions if indiquées ci-dessous.
1.Instruction simple si
2.instruction if-else
3.échelle si-autre-si
4.Instruction if imbriquée
Comprenons les instructions if une par une.
1) Simple if statement:

if(condition) {
statement 1; //executes when condition is true
}
Exemple: Teste de valeur positive
37
Énoncés décisionnels :
Comme son nom l'indique, les instructions de prise de décision décident quelle instruction exécuter et
quand. Les instructions de prise de décision évaluent l'expression booléenne et contrôlent le
déroulement du programme en fonction du résultat de la condition fournie. Il existe deux types
d'instructions de prise de décision en Java, à savoir l'instruction If et l'instruction switch.
1) if :
En Java, l'instruction "if" est utilisée pour évaluer une condition. Le contrôle du programme est
détourné en fonction de la condition spécifique. La condition de l'instruction If donne une valeur
booléenne, true ou false. En Java, il existe quatre types d'instructions if indiquées ci-dessous.
1.Instruction simple si
2.instruction if-else
3.échelle si-autre-si
4.Instruction if imbriquée
Comprenons les instructions if une par une.
1) Simple if statement:

if(condition) {
statement 1; //executes when condition is true
}
Exemple: Teste de valeur positive
38
2) instruction if-else

L' instruction if-else est une extension de l'instruction if, qui utilise un autre bloc de code, c'est-à-dire
le bloc else. Le bloc else est exécuté si la condition du bloc if est évaluée comme fausse.
Exemple: tester la divisibilité de deux entier.
Exercice:
Créer un programme permettant de lire un entier en java et de dire si l’entier et paire ou non
N.B:
Créer une classe calcule avec la méthode parité qui retourne vrai ou faux (Boolean)
Tester dans la classe Main et afficher le résultat
Exemple complet:
Créer un programme JAVA permettant de calculer l’indice de masse corporelle et d’indique à
l’utilisateur si son IMC est:
<20=> maigre
20-25 => idéale
>25 surpoids

39
Switch Statement:

En Java, les instructions Switch sont similaires aux instructions if-else-if. L'instruction switch contient
plusieurs blocs de code appelés cas et un seul cas est exécuté en fonction de la variable qui est
commutée. L'instruction switch est plus facile à utiliser que les instructions if-else-if. Cela améliore
également la lisibilité du programme.
Points à noter à propos de l'instruction switch :
•Les variables de cas peuvent être int, short, byte, char ou enumeration. Le type de chaîne est
également pris en charge depuis la version 7 de Java
•Les cas ne peuvent pas être dupliqués
•L'instruction par défaut est exécutée lorsque l'un des cas ne correspond pas à la valeur de
l'expression. C'est facultatif.
•L'instruction break termine le bloc de commutation lorsque la condition est satisfaite.
Il est facultatif, s'il n'est pas utilisé, le cas suivant est exécuté.
•Lors de l'utilisation d'instructions switch, nous devons noter que l'expression case sera du même type
que la variable. Cependant, ce sera également une valeur constante.

40
La syntaxe pour utiliser l'instruction switch est donnée ci-dessous.

switch (expression){
case value1:
statement1;
break;
.
.
.
case valueN:
statementN;
break;
default:
default statement;
}
Exemple: lire un entier 1 ou 2 ou 3 et afficher sa valeur textuelle.

41
instructions de boucle
En programmation, nous devons parfois exécuter le bloc de code à plusieurs reprises alors qu'une
condition est évaluée comme vraie. Cependant, les instructions de boucle sont utilisées pour exécuter
l'ensemble d'instructions dans un ordre répété. L'exécution du jeu d'instructions dépend d'une
condition particulière.
En Java, nous avons trois types de boucles qui s'exécutent de manière similaire. Cependant, il existe
des différences dans leur syntaxe et le temps de vérification des conditions.
1.la boucle for
2.boucle while
3.boucle do-while
Java for loop

En Java, la boucle for est similaire à C et C++ . Cela nous permet d'initialiser la variable de boucle, de
vérifier la condition et d'incrémenter/décrémenter en une seule ligne de code. Nous n'utilisons la
boucle for que lorsque nous connaissons exactement le nombre de fois que nous voulons exécuter le
bloc de code.
for (initialisation, condition, incrément/décrément) {
//bloc d'instructions
}

42
L'organigramme de la boucle for est donné ci-dessous.

Considérez l'exemple suivant pour comprendre le bon


fonctionnement de la boucle for en java.

43
Calcul.java
1.
public class Calculattion {
2.public static void main(String[] args) {
3.// TODO Auto-generated method stub
4.int sum = 0;
5.for(int j = 1; j<=10; j++) {
6.sum = sum + j;
7.}
8.System.out.println("The sum of first 10 natural numbers is " + sum);
9.}
10.}
Java for-each loop
1.
for(data_type var : array_name/collection_name){
//statements
}
Considérez l'exemple suivant pour comprendre le fonctionnement de la boucle for-each en Java.

44
Calculation.java
1.
public class Calculation {
public static void main(String[] args) {
// TODO Auto-generated method stub
String[] names = {"Java","C","C++","Python","JavaScript"};
System.out.println("Printing the content of the array names:\n");
for(String name:names) {
System.out.println(name);
}
}
}
Java while loop

La boucle while est également utilisée pour itérer plusieurs fois sur le nombre
d'instructions. Cependant, si nous ne connaissons pas le nombre d'itérations à l'avance, il est
recommandé d'utiliser une boucle while. Contrairement à la boucle for, l'initialisation et
l'incrément/décrément n'ont pas lieu à l'intérieur de l'instruction de boucle dans la boucle while.
Elle est également connue sous le nom de boucle à entrée contrôlée puisque la condition est vérifiée
au début de la boucle. Si la condition est vraie, alors le corps de la boucle sera exécuté ; sinon, les
instructions après la boucle seront exécutées.
45
La syntaxe de la boucle
while est donnée ci-
dessous.

while(condition){
//looping statements
}
public class Calculation {
public static void main(String[] args) {
// TODO Auto-generated method stub
int i = 0;
System.out.println("Printing the list of first 10 even num
bers \n");
while(i<=10) {
System.out.println(i);
i = i + 2;
}
}
}

46
Boucle do-while Java
La boucle do-while vérifie la condition à la fin de la
boucle après l'exécution des instructions de
boucle. Lorsque le nombre d'itérations n'est pas
connu et que nous devons exécuter la boucle au
moins une fois, nous pouvons utiliser la boucle do-
while.
Elle est également connue sous le nom de boucle
contrôlée par la sortie puisque la condition n'est
pas vérifiée à l'avance. La syntaxe de la boucle do-
while est donnée ci-dessous.
do
{
//statements
} while (condition);

47
Boucle do-while Java
La boucle do-while vérifie la condition à la fin de la
boucle après l'exécution des instructions de
boucle. Lorsque le nombre d'itérations n'est pas
connu et que nous devons exécuter la boucle au
moins une fois, nous pouvons utiliser la boucle do-
while.
Elle est également connue sous le nom de boucle
contrôlée par la sortie puisque la condition n'est
pas vérifiée à l'avance. La syntaxe de la boucle do-
while est donnée ci-dessous.
do
{
//statements
} while (condition);

48
Considérez l'exemple suivant pour comprendre le fonctionnement de la boucle
do-while en Java.

public class Calculation {


public static void main(String[] args) {
// TODO Auto-generated method stub
int i = 0;
System.out.println("Printing the list of first 10 even numbers \n");
do {
System.out.println(i);
i = i + 2;
}while(i<=10);
}
}

49
Instructions de saut
Les instructions de saut sont utilisées pour transférer le contrôle du programme aux instructions
spécifiques. En d'autres termes, les instructions de saut transfèrent le contrôle de l'exécution à l'autre
partie du programme. Il existe deux types d'instructions de saut en Java, c'est-à-dire break et continue.
Instruction d'arrêt Java
Comme son nom l'indique, l' instruction break est utilisée pour interrompre le flux actuel du
programme et transférer le contrôle à l'instruction suivante en dehors d'une boucle ou d'une
instruction switch. Cependant, il ne rompt que la boucle interne dans le cas de la boucle imbriquée.
L'instruction break ne peut pas être utilisée indépendamment dans le programme Java, c'est-à-dire
qu'elle ne peut être écrite qu'à l'intérieur de la boucle ou de l'instruction switch.
'exemple d'instruction break avec la boucle for
Considérez l'exemple suivant dans lequel nous avons utilisé l'instruction break avec la boucle for.
BreakExample.java
public class BreakExample {

public static void main(String[] args) {


// TODO Auto-generated method stub
for(int i = 0; i<= 10; i++) {
System.out.println(i);
if(i==6) {
break;
50
} } } }
Exercice:
Créer un programme de calcule permettant de :
1. Calculer la TVA sur un produit (TVA=12% si prix <100 , TVA=15% si prix <1000, TVA =19% sinon)
2. Dire si un entier est premier ou non? (divisible que par lui-même et un)

3. Calculer la factoriel d’un entier


4. Calculer le plus grand commun multiple de deux entier
5. Tester tout les programmes dans un PSVM

51
Tableaux Java

Les tableaux sont utilisés pour stocker plusieurs valeurs dans une seule variable,
au lieu de déclarer des variables distinctes pour chaque valeur.
Pour déclarer un tableau, définissez le type de la variable entre crochets :
String[] names
String[] names = {“n1, “n2", “n3"};
Pour créer un tableau d'entiers, vous pouvez écrire :

int[] notes = {12, 2, 3, 4Vous accédez à un élément de tableau en vous


référant au numéro d'index.
Cette instruction accède à la valeur du premier élément dans note:
notes[0];
Pour connaître le nombre d'éléments d'un tableau, utilisez la length :

52
Voyons l'exemple simple pour imprimer ce tableau.

//Java Program to illustrate the use of declaration, instantiation


//and initialization of Java array in a single line
class Testarray1{
public static void main(String args[]){
int a[]={33,3,4,5};//declaration, instantiation and initialization
//printing array
for(int i=0;i<a.length;i++)//length is the property of array
System.out.println(a[i]);
}}
Boucle for-each pour tableau Java
Nous pouvons également imprimer le tableau Java en utilisant la boucle for-each . La boucle Java for-
each imprime les éléments du tableau un par un. Il contient un élément de tableau dans une variable,
puis exécute le corps de la boucle.
La syntaxe de la boucle for-each est donnée ci-dessous :
for(data_type variable:array){
//body of the loop
}

53
Voyons l'exemple d'impression des éléments du tableau Java à l'aide de la boucle for-each.

//Java Program to print the array elements using for-each loop


class Testarray1{
public static void main(String args[]){
int arr[]={33,3,4,5};
//printing array using for-each loop
for(int i:arr)
System.out.println(i);
}}

Liste Java

List en Java offre la possibilité de maintenir la collection ordonnée . Il contient les méthodes basées sur
l'index pour insérer, mettre à jour, supprimer et rechercher les éléments. Il peut également avoir les
éléments en double. Nous pouvons également stocker les éléments nuls dans la liste.
L'interface List se trouve dans le package java.util et hérite de l'interface Collection. C'est une usine
d'interface ListIterator. Grâce au ListIterator, nous pouvons parcourir la liste en avant et en arrière. Les
classes d'implémentation de l'interface List sont ArrayList , LinkedList , Stack et Vector. ArrayList et
LinkedList sont largement utilisés dans la programmation Java. La classe Vector est obsolète depuis
Java 5.
54
Déclaration d'interface de liste
Liste Java vs ArrayList
List est une interface alors que ArrayList est la classe d'implémentation de List.
Comment créer une liste
Les classes ArrayList et LinkedList fournissent l'implémentation de l'interface List. Voyons les exemples
pour créer la liste :
1.//Creating a List of type String using ArrayList
2.List<String> list=new ArrayList<String>();
3.
4.//Creating a List of type Integer using ArrayList
5.List<Integer> list=new ArrayList<Integer>();
6.
7.//Creating a List of type Book using ArrayList
8.List<Book> list=new ArrayList<Book>();
9.
10.//Creating a List of type String using LinkedList
11.List<String> list=new LinkedList<String>();

55
En bref, vous pouvez créer la liste de n'importe quel type. Les classes ArrayList<T> et LinkedList<T>
sont utilisées pour spécifier le type. Ici, T désigne le type.
Exemple de liste Java
Voyons un exemple simple de List où nous utilisons la classe ArrayList comme implémentation.
import java.util.*;
public class ListExample1{
public static void main(String args[]){
//Creating a List
List<String> list=new ArrayList<String>();
//Adding elements in the List
list.add("Mango");
list.add("Apple");
list.add("Banana");
list.add("Grapes");
//Iterating the List element using for-each loop
for(String fruit:list)
System.out.println(fruit);

}
}
56
Comment convertir un tableau en liste
Nous pouvons convertir le tableau en liste en parcourant le tableau et en ajoutant l'élément dans la
liste un par un à l'aide de la méthode list.add(). Voyons un exemple simple pour convertir des éléments
de tableau en List.
import java.util.*;
public class ArrayToListExample{
public static void main(String args[]){
//Creating Array
String[] array={"Java","Python","PHP","C++"};
System.out.println("Printing Array: "+Arrays.toString(array));
//Converting Array to List
List<String> list=new ArrayList<String>();
for(String lang:array){
list.add(lang);
}
System.out.println("Printing List: "+list);

}
}

57
Obtenir et définir un élément dans la liste

La méthode get() renvoie l'élément à l'index donné, tandis que la méthode set() modifie ou remplace
l'élément.
import java.util.*;
public class ListExample2{
public static void main(String args[]){
//Creating a List
List<String> list=new ArrayList<String>();
//Adding elements in the List
list.add("Mango");
list.add("Apple");
list.add("Banana");
list.add("Grapes");
//accessing the element
System.out.println("Returning element: "+list.get(1));//it will return the 2nd element, because index st
arts from 0
//changing the element
list.set(1,"Dates");
//Iterating the List element using for-each loop
for(String fruit:list)
58
System.out.println(fruit); }}
Obtenir et définir un élément dans la liste

La méthode get() renvoie l'élément à l'index donné, tandis que la méthode set() modifie ou remplace
l'élément.
import java.util.*;
public class ListExample2{
public static void main(String args[]){
//Creating a List
List<String> list=new ArrayList<String>();
//Adding elements in the List
list.add("Mango");
list.add("Apple");
list.add("Banana");
list.add("Grapes");
//accessing the element
System.out.println("Returning element: "+list.get(1));//it will return the 2nd element, because index st
arts from 0
//changing the element
list.set(1,"Dates");
//Iterating the List element using for-each loop
for(String fruit:list)
59
System.out.println(fruit); }}
Exemple:
Créer un programme avec :
Une classe Enfant: (nom,prenom,age,groupe)
Une classe Groupe: (titre, listEnfants)
Une classe Teste avec votre PSVM
1. Créer des instances de Enfants
2. Créer deux groupes
3. Associer des enfants à chaque groupe
4. Afficher la liste des enfants de chaque groupes

Exercice:
Créer un programme avec deux classes:
1. Etudiant: nom, classe,remarque,notes (Arrayliste de entier)
✓ Créer une méthode qui permet de lire seulement les notes entre 0-20
✓ Créer une méthode permettant de calculer la Moyenne des notes d’un étudiant
✓ Si Moyenne>10 remarque=“réuissi” sinon remarque =“redoublement”

60
Exemple:
Créer un programme avec :
Une classe Enfant: (nom,prenom,age,groupe)
Une classe Groupe: (titre, listEnfants)
Une classe Teste avec votre PSVM
1. Créer des instances de Enfants
2. Créer deux groupes
3. Associer des enfants à chaque groupe
4. Afficher la liste des enfants de chaque groupes

Exercice:
Créer un programme avec deux classes:
1. Etudiant: nom, classe,remarque,notes (Arrayliste de entier)
✓ Créer une méthode qui permet de lire seulement les notes entre 0-20
✓ Créer une méthode permettant de calculer la Moyenne des notes d’un étudiant
✓ Si Moyenne>10 remarque=“réuissi” sinon remarque =“redoublement”

61
Gestion des exceptions en Java

La gestion des exceptions en Java est l'un des mécanismes puissants pour gérer les erreurs
d'exécution afin que le flux normal de l'application puisse être maintenu.
Dans ce didacticiel, nous découvrirons les exceptions Java, leurs types et la différence entre les
exceptions cochées et non cochées.
Qu'est-ce qu'une exception en Java ?
Signification du dictionnaire : une exception est une condition anormale.
En Java, une exception est un événement qui perturbe le déroulement normal du programme. C'est un
objet qui est lancé à l'exécution.
Qu'est-ce que la gestion des exceptions ?
La gestion des exceptions est un mécanisme permettant de gérer les erreurs d'exécution telles que
ClassNotFoundException, IOException, SQLException, RemoteException, etc.
Avantage de la gestion des exceptions
Le principal avantage de la gestion des exceptions est de maintenir le flux normal de
l'application . Une exception perturbe normalement le déroulement normal de l'application ; c'est
pourquoi nous devons gérer les exceptions. Considérons un scénario

62
énoncé 1;
énoncé 2;
énoncé 3;
énoncé 4;
énoncé 5 ; // une exception se produit
énoncé 6;
énoncé 7;
énoncé 8;
énoncé 9;
énoncé 10 ;

Supposons qu'il y ait 10 instructions dans un programme Java et qu'une exception se produise à
l'instruction 5 ; le reste du code ne sera pas exécuté, c'est-à-dire que les instructions 6 à 10 ne seront
pas exécutées. Cependant, lorsque nous effectuons la gestion des exceptions, le reste des instructions
sera exécuté. C'est pourquoi nous utilisons la gestion des exceptions en Java .

63
Types d'exceptions Java
Il existe principalement deux types d'exceptions :
cochées et non cochées. Une erreur est considérée
comme l'exception non contrôlée. Cependant, selon
Oracle, il existe trois types d'exceptions à savoir :
1.Exception vérifiée
2.Exception non cochée
3.Erreur
Différence entre les exceptions cochées et non
cochées
1) Exception vérifiée
Les classes qui héritent directement de la classe
Throwable, à l'exception de RuntimeException et
Error, sont appelées exceptions vérifiées. Par
exemple, IOException, SQLException, etc. Les
exceptions vérifiées sont vérifiées au moment de la
compilation.

64
2) Exception non cochée
Les classes qui héritent de RuntimeException sont appelées exceptions non vérifiées. Par exemple,
ArithmeticException, NullPointerException, ArrayIndexOutOfBoundsException, etc. Les exceptions non
vérifiées ne sont pas vérifiées au moment de la compilation, mais elles le sont au moment de
l'exécution.
3) Erreur
L'erreur est irrécupérable. Quelques exemples d'erreurs sont OutOfMemoryError, VirtualMachineError,
AssertionError etc.
JavaExceptionExample.java
public class JavaExceptionExample{
public static void main(String args[]){
try{
//code that may raise exception
int data=100/0;
}catch(ArithmeticException e){System.out.println(e);}
//rest code of the program
System.out.println("rest of the code..."); } }

65
Dans l'exemple ci-dessus, 100/0 lève une ArithmeticException qui est gérée par un bloc try-catch.

Scénarios courants d'exceptions Java


Certains scénarios sont donnés dans lesquels des exceptions non contrôlées peuvent se produire. Ils
sont les suivants :
1) Un scénario où ArithmeticException se produit
Si nous divisons un nombre par zéro, une ArithmeticException se produit.
1.
int a= 50 / 0 ; //Exception arithmétique

2) Un scénario où NullPointerException se produit


Si nous avons une valeur nulle dans n'importe quelle variable , l'exécution de toute opération sur la
variable lève une NullPointerException.
String s= null ;
System.out.println(s.length()); //NullPointerException
String s= "abc" ;
int i=Entier.parseInt(s); //ExceptionFormatNombre

66
4) Un scénario où ArrayIndexOutOfBoundsException se produit
Lorsqu'un tableau dépasse sa taille, ArrayIndexOutOfBoundsException se produit. il peut y avoir
d'autres raisons de se produire ArrayIndexOutOfBoundsException. Considérez les déclarations
suivantes.
int a[]=new int[5];
a[10]=50; //ArrayIndexOutOfBoundsException

67
Mieux comprendre:
Introduisons swing pour l’exemple de calcule (IMC) précédent:
En créant une interface graphique pour ce calcule:
Les inputs sont considéré comme des JtextFeild:
Une exception pourra se déclencher si l’élément n’est pas conversible.
Java Swing par la pratique:
Pour Jswing on va créer une application permettant de dire si une date JJ/MM/AAAA est valide ou non:
Une date est valide si :
1. Le jour le mois et l’année sont correcte
2. Le mois 2 peut atteindre 29 si l’années est divisible par 4
✓ L’utilisateur doit pouvoir saisir jour/mois /année dans 3 champs séparé
✓ le champs mois par un menu déroulant [1-12]
✓ L’utilisateur doit avoir un message d’alerte qui la date est valide ou invalide

68
Exercice finale:

Avec JSWING créer une calculatrice permettant de :

1. Faire la somme de deux entiers

2. Afficher le produit de deux entier

3. Faire la division entre deux entier (attention à la division par 0)

4. Faire la soustraction de deux entier

5. afficher A^B de deux entier

69

Vous aimerez peut-être aussi