Académique Documents
Professionnel Documents
Culture Documents
En JAVA
Alors avant de commencé Java est un langage Haut niveau, avec lequel on peut
programmer des applications pour bureau, des applets (les applications pour le web) et
2
des Application Android et autre …
3 La façon de penser de Java est différente du C il faut apprendre à penser Objet ! C’est-à-
dire qu’on C ou en algorithmique, on avait l’habitude de programmer avec des fonctions
qui appel d’autre fonctions … Ici c’est nos objets qui vont communiquer entre eux ! Pour
faire simple c’est quoi un objet ? C’est un enregistrement (Structure) qui comporte en plus
des fonctions, tout sera expliquer après avec plus de détaille et un exemple complet.
3
GHRICI Abdellah ( fb.com/ghriciabdellah )
instructions d'entrée/sortie
pour lire des entrer au clavier on utilise la classe Scanner qu’on doit importer dans le
package java.util.Scanner, on doit instancier un objet avec le paramètre System.in avant
de l’utiliser
Introduction
3
La lecture des entrées clavier se fait via
l'objet Scanner e.
Il y a une méthode de récupération de
données pour chaque type (sauf les
char)
4
GHRICI Abdellah ( fb.com/ghriciabdellah )
Déclaration des variables
Une variable stocke une valeur de type simple ou de type référence (vers un tableau ou un objet). Elle
doit être déclarée et peut être initialisée dans le mémé temps. Plusieurs variables de mémé type
peuvent être déclarées ensemble
Introduction
5
GHRICI Abdellah ( fb.com/ghriciabdellah )
Expressions et opérateurs
Opérateurs Description Type Opérandes Type Résultat
3
Décalage de bit signé à gauche et à droite et
<<, >>, >>> int int
non signé à droit
^ Complément bit à bit int int
6
GHRICI Abdellah ( fb.com/ghriciabdellah )
Instruction conditionnelle
Une instruction conditionnelle permet à un programme de modifier son traitement en fonction d'une
condition. Les structures conditionnelles permettent de déterminer l'ordre dans lequel les instructions sont
exécutées.
Introduction
7
GHRICI Abdellah ( fb.com/ghriciabdellah )
Boucles
La notion d’itération est une des notions fondamentales de l’algorithmique. On utilise souvent quand on doit
exécuter le même traitement un certain nombre de fois qui peut être connu à l’avance ou non.
Introduction
FOR DO WHILE
for(i = valeur-initial; condition de do while( <expression> )
sortie ; incrémentation) { {
{ /* Instructions */ /* Instructions */
/* Instructions */ } }
2
} while( <expression> );
8
GHRICI Abdellah ( fb.com/ghriciabdellah )
Boucles
Propriétés
FOR WHILE DO
Introduction
- La boucle FOR est utilisée lorsque le - Le nombre de répétitions n'est pas - Le bloc d'instruction est répété
nombre de répétition est connu à connu à l'avance il dépend de la jusqu'à ce que la condition COND égale
l'avance. valeur de la condition COND. à fausse.
- Pour chaque valeur de la variable de - Au début de chaque itération, la - En fin de chaque itération l'expression
contrôle qui varie de la valeur initiale condition est évaluée. logique COND est évaluée.
à la valeur finale avec un pas égale à - Si COND = Vraie le bloc est exécuté - Avec cette boucle le bloc est répété
1. Le bloc sera exécuté. sinon on sort de la boucle. au moins une seule fois
- Le bloc est répéter (valeur finale - - Si COND = fausse au début on NB : Cette boucle est utilisée
2
valeur initiale + 1) fois. n'exécute aucune instruction. généralement dans le contrôle de
- La sortie de cette boucle s'effectuer saisie.
3 lorsque le nombre souhaité de
répétition est atteint.
- Dans cette boucle l'incrémentation
est faite automatiquement.
9
GHRICI Abdellah ( fb.com/ghriciabdellah )
Boucles
Comparaison des boucles
FOR WHILE DO
Introduction
3 • break;
quitter une boucle (for, do, while)
10
GHRICI Abdellah ( fb.com/ghriciabdellah )
Tableaux
Définition: Un tableau T est une variable structurée formée d’un nombre entier N de variables simples de
même type, qui sont appelées les composantes du tableau. Le nombre de composantes N est alors la
dimension du tableau.
Introduction
Colonnes
2
3
Lignes
11
GHRICI Abdellah ( fb.com/ghriciabdellah )
Programmation
orientée objet
Création des classes et objets
Classe : une classe c’est une structure (un rassemblement de variable) ou en trouve à l’intérieur des
1 fonctions aussi, à partir de maintenant on va appeler les variables d’une classe attributs et les fonctions
d’une classe méthodes .une classe c’est quelques chose d’abstrait c’est juste une sorte de model.
Programmation orientée objet
Objet : c’est une instance d’une classe, c’est-à-dire c’est quelques choses de concret avec des vraies valeurs
qui peut utiliser les méthodes de la classe.
13
GHRICI Abdellah ( fb.com/ghriciabdellah )
Création des classes et objets
– Crée une classe : Pour crée une classe on crée un nouveau fichier avec le nom de notre classe et on utilise
1 le mot clé class, pour les attributs on déclare des variables comme on avait l’habitude de faire.
Après nous devons écrire nos méthodes, ici nous allons utiliser deux méthodes seulement une pour afficher
l’heure et une autre pour régler l’heure (changer l’heure) on donne la nouvelle heure (h_new comme
Programmation orientée objet
14
GHRICI Abdellah ( fb.com/ghriciabdellah )
Création des classes et objets Nom Class
L’encapsulation: Principe selon
1 lequel 1) les données et les Attribut:
opérations d'un même objet sont Synonyme de variable d'instance. Caractéristique d'un
regroupés dans une même entité et objet qui lui est reliée et possède une valeur. Les
valeurs des attributs sont les données de l'objet.
Programmation orientée objet
15
GHRICI Abdellah ( fb.com/ghriciabdellah )
Création des classes et objets
1 Accesseur:
Méthode qui retourne la valeur d'un attribut. Synonyme de
getter
Programmation orientée objet
Mutateur:
Méthode publique permettant de modifier la valeur d'un
attribut masqué. Synonyme
de setter.
16
GHRICI Abdellah ( fb.com/ghriciabdellah )
Création des classes et objets
pour utiliser notre classe Temps, on va dans notre classe
1 main et on doit créer nos objets à partir de cette classe
c’est-à-dire instancié ! et pour ça nous avons besoin du
mot clé new
Programmation orientée objet
L’affichage :
3
17
GHRICI Abdellah ( fb.com/ghriciabdellah )
Création des classes et objets
Final: est le mot clé utiliser pour déclarer qu’un attribut est
1 constant ! quand on utilise un attribut de type final il doit
être initialisé ! Soit dans le constructeur soit lors de sa
déclaration.
Programmation orientée objet
Static: est le mot clé pour dire qu’un attribut est partagé
c’est-à-dire que l’attribut appartient à la classe et non pas à
l’objet on peut l’utiliser par exemple pour connaitre le
nombre d’instance d’une classe on l’initialise à zéro et on
incrémente dans le constructeur, si on utilise static devant
une méthode on pourra l’utiliser sans instancier un objet
de cette classe (comme avec System.out.println())
3
18
GHRICI Abdellah ( fb.com/ghriciabdellah )
L’héritage
1 l’héritage est un l’un des concepts fondamental de la POO, on dit qu’une classe B hérite de la classe A,
lorsque la Class B a tous les attributs et méthodes de la classe A, la classe B peut (pas obligatoirement) avoir
Programmation orientée objet
Exemple : Nous avons les classe Suivante Chien , Dents , Animal , Voiture , Véhicule, roue et nous voulons
chercher la relation entre nos différents classe.
19
GHRICI Abdellah ( fb.com/ghriciabdellah )
L’héritage
1 Pour crée une classe qui hérite d’une autre class on utilise
le mot clé extends, pour dire que la classe Voiture hérite de
la class Vehicule on écrit Voiture extends Vehicule.
Programmation orientée objet
Remarque:
3
Toutes les class en java hérite de la class Object.
Une class ne peut hériter que d’une SEULE class au maximum !
L’héritage multiple est interdit en java pour pallier ce problème
on utilisera des interfaces.
20
GHRICI Abdellah ( fb.com/ghriciabdellah )
L’héritage
1
Programmation orientée objet
21
GHRICI Abdellah ( fb.com/ghriciabdellah )
Polymorphisme
on peut distinguer deux type polymorphisme.
1
1. Surcharge : C’est la possibilité d’écrire des
méthodes avec le même nom mais avec un
Programmation orientée objet
22
GHRICI Abdellah ( fb.com/ghriciabdellah )
Polymorphisme
2. Redéfinition: lorsqu’une classe B hérite de la Class A elle peut redéfinir une de ces méthode, c’est-à-dire modifier
1 la méthode pour bénéficier du polymorphisme (lorsque la même méthode peut prendre plusieurs forme), vue que
tous nos class hérite de la class object on peut redéfinir ses méthodes comme la méthode equals ou toString ou
Programmation orientée objet
autre.
L’affichage:
23
GHRICI Abdellah ( fb.com/ghriciabdellah )
Structuration en package
Java permet de structurer les classes en ensembles appelés packages afin de gagner en modularité. Les classes
1
contenues dans un fichier appartiennent au package par default à moins d'en indiquer un autre en première ligne
du fichier.
Programmation orientée objet
package nomPackage;
Lorsque l'on utilise une classe donnée, le compilateur la recherche dans le package par default. Si elle appartient
à un autre package il est nécessaire de l'importer au début du fichier. On peut importer toutes les classes d'un
package avec '*'. Ceci n'importe pas les classes des sous-packages.
import nomPackage.NomClasse;
import nomPackage.*;
3
import nomPackage.sousPackage.*;
Le package java.lang contient l'ensemble des classes fondamentales au langage. il est importé
automatiquement.
24
GHRICI Abdellah ( fb.com/ghriciabdellah )
Structuration en package
1 Package notables de la bibliothèque standard de JAVA
Package Rôle
Programmation orientée objet
25
GHRICI Abdellah ( fb.com/ghriciabdellah )
Java.lang.Math et java.util.Array
1
Les classes Math et Arrays regroupent des constantes et des méthodes de classes pour les mathématiques et la
manipulation de tableaux
Programmation orientée objet
Méthode Description
abs, sqrt, pow Valeur absolue, racine carré et puissance
sin, cos, tan Fonctions trigonométriques
Math
26
GHRICI Abdellah ( fb.com/ghriciabdellah )
Collection, List et set
1
L'interface java.util.Collection<E> regroupe les méthodes génériques pour la gestion de structures de données. Elle
hérite de Iterable<E>. Les structures l'implémentant peuvent être parcourues avec une boucle for each.
Les interfaces List<E> et Set<E> héritent de Collection<E>. Les classes qui les implémentent sont respectivement des
Programmation orientée objet
ArrayList<E> est une implémentation de Liste<E> construite sur des tableaux. L'accès aux éléments est rapide à partir
de leur indice. Suppression et Insertion sont plus couteuses.
HashSet<E> est une implémentation de Set<E> construite sur une table de hachage Accès, insertion et suppression
sont en temps constant.
3
27
GHRICI Abdellah ( fb.com/ghriciabdellah )
Collection, List et set
Liste (non exaustive) des méthodes définies dans Collection et List
1 Méthode Description
boolean add(E e)
Insére e (ou les éléments de c) et renvoie true si la structure a été modifiée
boolean addAll(Collection c)
Programmation orientée objet
boolean contains(Object o)
Renvoie true si o ou l'ensemble des éléments de c sont dans la structure
boolean containsAll(Collection c)
boolean isEmpty() Renvoie true si la liste est vide
boolean remove(Object o) Supprime une occurrence de o ou de chaque élément de c. Renvoie true si
boolean removeAll(Collection c) chaque occurrence a été supprimée
int size() Renvoie le nombre d'élément
Object[] toArray() Renvoie un tableau des éléments
boolean add(E e) Insére e en fin de liste, Renvoie true
3 void add(int i, E e) Insére e à l'indice i
List<E>
boolean add(E e) Insére e s'il n'existe pas d'élément f vérifiant e.equals(f). Renvoie true si le Set a changé.
28
GHRICI Abdellah ( fb.com/ghriciabdellah )
Map
1
L'interface java.util.Map<K, V> est utilisée pour les tableaux d'association clef-valeur (dictionnaires). On insère dans
la table une valeur en l'associant à une clef. Une clef ne peut être associée qu'à une seule valeur. Pour retrouver une
valeur on utilise la clef. La principale implémentation est HashMap<K, V>.
Programmation orientée objet
29
GHRICI Abdellah ( fb.com/ghriciabdellah )
Map
1 Liste de certaines méthodes définies dans Map
Méthode Description
Programmation orientée objet
30
GHRICI Abdellah ( fb.com/ghriciabdellah )
Attraper les exceptions
1
Les exceptions sont des objets héritant de throwable et utilisées pour gérer les cas d'erreurs d'un programme. Un
bloc protégé peut attraper les exceptions lancées (déclenchées) par les instructions du bloc et les gérer.
Programmation orientée objet
31
GHRICI Abdellah ( fb.com/ghriciabdellah )
Attraper les exceptions
1
Certains objets (comme les flux) doivent être refermés après leur utilisation. Lever une exception peut interompre le
code qui était destiné à les refermer. il est possible de refermer automatiquement les objets implémentant
AutoCloseable en les déclarant entre paranthèses juste après try.
Programmation orientée objet
32
GHRICI Abdellah ( fb.com/ghriciabdellah )
Créer des exceptions
1
une exception est un objet d'une classe héritant de Throwable. Lancer une exception se fait avec le mot clef throw.
throw new MonException();
Lorsqu'une méthode succeptible de lancer une exception n'est pas dans un bloc protégé, le compilateur engendre
Programmation orientée objet
une erreur. Dans le cas des exceptions héritant de Error ou RunTimeExeption. le bloc n'est pas nécessaire.
Exceptions courantes
Description Syntaxe des exceptions
NullPointerException Accès à une méthode ou à un attribut depuit une variable référençant
null.
IndexOutBoundException Accès à une cas n'existant pas dans un tableau.
3 ClassCastException Transtypage d'un objet dans un type auquel il n'appartient pas.
33
GHRICI Abdellah ( fb.com/ghriciabdellah )
Quitter un programme
1
La méthode exit permet de terminer l'exécution d'un programme. Elle prend en paramétre un statu qui sera renvoyé
au système d'exploitation. Par convention. tout valeur non nulle indique une terminaison anormale.
System.exit(status);
Programmation orientée objet
34
GHRICI Abdellah ( fb.com/ghriciabdellah )
Exemple
complet
Exemple complet Gestion d'un commerce
On désire programmer une mini-application de gestion produit
1
nom
de petit commerce.
prix d'achat
2 Pour cela, on va écrire une classe Produit et une classe Magasin.
prix de vente
Dans notre commerce, chaque produit est caractérisé (voir tab.1) nombre d'exemplaires en stock
description
Exemple complet
tab.1
A la création du produit, on Fixe son nom, son prix d'achat et son prix de vente, c'est-à-dire que ces données son
fournies en argument au constructeur de la classe. Par défaut, la description du produit est « Pas de
description », et la quantité de produits en stock est nulle.
La classe Produit dispose d'un certain nombre de méthodes, qui lui permettent d'afficher la
description du produit, de l'éditer, d'augmenter ou de diminuer le nombre d'exemplaires en stock,
ainsi que d'obtenir les valeurs des différents attributs.
Question 1.1: écrivez la classe Produit
36
GHRICI Abdellah ( fb.com/ghriciabdellah )
Exemple complet Gestion d'un commerce
1
Un magasin se caractérise (Voir tab.2) Magasin
Avant de pouvoir acheter ou vendre un produit, il faut l'avoir solde
2 ajouté dans le stock. Pour cela, la classe Magasin dispose stock de produits (Le stock de produit est
d'une méthode: ajouterProduit L'indice de la case du tableau représenté par un tableau d'objets "Produit".)
dans laquelle on a stocké le produit devient alors la référence
Exemple complet
37
GHRICI Abdellah ( fb.com/ghriciabdellah )
Exemple complet Gestion d'un commerce
1
Exercice 2: Différents types de produits
Jusque là, les produits disposent d'une description qui est une simple chaine de caractère. Cela peut-être
Question 2.1: écrivez la classe Livre qui hérite de la classe Produit. Certaines méthodes doivent être surchargée
(c'est-à-dire réécrites) De même, un cd se caractérise par son auteur, son interprète, et l'ensemble des titres de
ses pistes.
Question 2.2: écrivez la classe Cd qui hérite de la classe Produit.
38
GHRICI Abdellah ( fb.com/ghriciabdellah )
Exemple complet Gestion d'un commerce
1
Il va maintenant falloir faire les modifications nécessaires dans la classe Magasin, mais elles sont minimes. En
effet, Livre étant une sous-classes de Produit, les objets de type Livre sont également de type Produit, donc le
Question 2.3: Modifier la classe Magasin pour tenir compte des nouveaux objets.
Pour utiliser pleinement votre classe Magasin, vous avez maintenant besoin d'une méthode d'interaction
permettant de proposer à l'utilisateur d'ajouter un livre, un cd ou un produit standard, d'acheter, de vendre,
d'obtenir ou d'éditer la description d'un produit déjà existant, d'afficher un bilan général.
Question 2.4: écrivez la méthode interaction de la classe Magasin
39
GHRICI Abdellah ( fb.com/ghriciabdellah )
Exemple complet Gestion d'un commerce
1
Exercice 3: Recherche par mot Dans l'exercice précédent, pour acheter, vendre, éditer ou afficher la description
d'un produit existant, il fallait le spécifier par sa référence, c'est-à-dire par son indice dans le tableau. Ce n'est pas
2 un moyen très pratique d'aller chercher les produits, surtout si il y en a un très grand nombre. Nous allons écrire
la méthode public Produit rechercherProduit(String nom) qui renvoie un objet Produit dont le nom est spécifié en
argument, ainsi que la méthode public Produit rechercherProduitParMot(String mot) qui renvoie un objet Produit
Exemple complet
dont la description contient le mot spécifié en argument. Pour écrire ces méthodes, vous allez avoir besoin d'un
outil capable de comparer deux chaines de caractères, et d'un outil capable de dire si une chaine est incluse dans
une autre. C'est la classe String elle-même qui est capable de faire cela. En effet, contrairement à ce que vous
avez vu jusque là, String n'est pas un type simple comme int, mais une classe à part entière qui a ses attributs et
ses méthodes. Comme toute classe interne à Java, elle est précisément décrite dans la documentation de Java.
Question 3.1: écrivez les méthodes rechercherProduit et rechercherProduitParMot.
Modifiez votre méthode interaction pour tenir compte de ces nouvelles
méthodes.
40
GHRICI Abdellah ( fb.com/ghriciabdellah )