Académique Documents
Professionnel Documents
Culture Documents
Programmation
Orientée Objet 2
2ème année Ingénieurs informatique
Dr Souad Saighi
... }
Présentation
}
Objectifs
Examen final 60 %
Plan du cours
01 Rappels sur l’Orienté Objet
02 Les exceptions
03 Générécité et Collections
04 Les interfaces graphiques
Rappels
Classe
Pattern
constitué d’un
ensemble de code
Attributs Méthodes
Constantes et Fonctions et
variables procédures
définies dans la responsables du
classe traitement des
données
Rappels
On peut Objet
instancier un
objet plusieurs Une représentation
fois de la classe
Etat Comportement
Valeurs des Methodes agissant
attributs sur l’état de
l’objet
Exemple
Classe : Etudiant
Objet : Etudiant
Instanciations : Etudiant1, Etudiant2
Access modifiers
public private
Accessible par Accessible
absolument tout uniquement par
le monde la même classe
protected default
Accessible par le même Accessible
package et par les sous uniquement par
classes de la classe de le même package
définition
Paradigme orienté objet
Le paradigme orienté objet repose sur 4 piliers
static
Définit une variable
de classe ou une
méthode de classe
final
(exemple : main) Définit une
constante
exercice
Ecrivez une classe Etudiant avec les
attributs Nom, Prénom et matricule
Créer une classe main avec une méthode main
demandant à un utilisateur de créer un
étudiant en donnant une valeur à tous ses
attributs
02 { ..
Les Exceptions
} ..
Plan du chapitre
01
Définition de la notion d’exception
02
Les différents types d’erreurs
03
Hiérarchie des classes d’exception
04
Gestion des exceptions (bloc try …catch)
05
Plusieurs exceptions dans un bloc try...catch
Définition de la notion d’Exception
Une exception est chargée de signaler un comportement
exceptionnel (mais prévu) d’une partie spécifique d’un
logiciel.
Dans les langages de programmation actuels, les
exceptions font partie du langage lui même. C’est le cas
de Java qui intègre les exceptions comme une classe
particulière: la classe Exception.
Cette classe contient un nombre important de classes
dérivées
C’est une façon plus propre de gérer tout ce que le
logiciel considère comme comportement inacceptable.
Définition de la notion d’Exception
Java dispose d’un mécanisme très souple nommé gestion
d’exception, qui permet à la fois :
•
exemple.
FileNotFoundException : exemple, tentative d’ouverture }
d’un fichier inexistant en lecture
Hiérarchie des Exceptions
Gestion
d’exceptions }
< Le bloc tr{} catch(){}…>
Comment déclencher une
exception avec throw ?
{ Exemple :
Un point ne peut pas
avoir de coordonnées
négatives.
}
Gestion d’une exception
try
{
// instructions
}
Faire suivre ce bloc par un gestionnaire d’exception par type d’exception
catch (TypeException e)
{
//Traitement en cas de déclenchement d’exception
}
}
Exemple suite :
}
Gestion d’une exception
}
L’objet Exception
getMessage() : Cette méthode retourne le message associé
{
1.
à l'exception, souvent une description de l'erreur
survenue.
2. printStackTrace() : Cette méthode imprime la trace de la
pile d'exécution au moment où l'exception a été levée.
Cela aide à identifier où l'exception s'est produite
dans le code.
3. toString() : Cette méthode retourne une chaîne de
caractères représentant l'objet exception, généralement
contenant le nom de la classe et le message d'erreur.
https://docs.oracle.com/javase/8/docs/api/java/lang/Except }
ion.html
printStackStrace()
Il vous est déjà probablement arrivé d’obtenir, lors de
{ l’exécution, un message d’erreur commençant par :
Exception in thread "main"
On obtient cela lorsqu’une exception survient sans être
traitée. Ce message présente la succession des différents
appels depuis main ayant conduit à la méthode coupable
Nous pouvons obtenir un message semblable en mentionnant
dans le bloc catch : e.printStackTrace() (ici e est le
paramètre de catch)
}
Erreurs et Exceptions
Ex : VirtualMachineError, LinkageError,
InstanciationError, InternalError
}
Gestion de plusieurs exceptions
try {
{ }
// instructions
{ try
{
// instructions
}
Faire suivre ce bloc par un gestionnaire d’exception par
type d’exception
catch (TypeException1 | TypeException2 e)
{
//Traitement en cas de déclenchement d’exception de
type TypeException1 ou de type TypeException2 }
}
Dans la déclaration de la méthode
{ int f()
{ int n= 12;
try
{ float x;
……
}
catch(Exception e)
{ // on a pas accès à x mais on a accès à n
}
}
Questions
?
03 { ..
Générécité et Collections
} ..
Plan du chapitre généricité
01
La généricité en java
02
Mécanismes de généricité
03
Généricité et héritage
04
Généricité et classes abstraites
{ ..
La programmation générique
implique d'écrire du code qui
puisse être réutilisé pour des
objets de types quelconques
} ..
Générique
Type quelconque,
Type fixé lors
Manipulation
de
d’objets de
l’instanciation
différents types
Object premier;
Object second;
public Paire(Object a, Object b){
premier = a;
second = b;
}
public Object getPremier(){return premier;}
public Object getSecond(){return second;}
. . . }
Object
T premier;
T second;
public Paire(T a, T b){
premier = a;
second = b;
}
public T getPremier(){return premier;}
public T getSecond(){return second;}
. . . }
Classe générique
Quand on ne connaît pas à l’avance le type traité, on peut
spécifier un type indéfini dans la déclaration de la classe,
comme dans l’exemple :
https://docs.oracle.com/javase/tutorial/java/generics/Q
andE/generics-questions.html
{ Les collections
Les collections en java est un
ensemble d’interfaces et de
classes permettant de
manipuler les structures de
données usuelles
Vecteurs dynamiques,
listes chaînées,
} ..
files, piles, tables de
hachage….
Plan du chapitre Collections
01 Hiérarchie des interfaces de collections
02
Description des interfaces
03 Implémentation des interfaces de collections
Set, List et Map
Hiérarchie des interfaces de
collection
Collection Map
SortedSet
Hiérarchie globale
Types de Collections
List : Tableau dynamique manipulé par
des indices, accepte les doublons
Set
Map
https://docs.oracle.com/javase/8/docs
/api/java/util/Collection.html
L’interface Set
Set
https://docs.oracle.com/javase/8/docs
/api/java/util/HashSet.html
TreeSet
• Les éléments insérés sont automatiquement
triés
• Exige un seul type d’éléments
TreeSet
• Les éléments insérés sont automatiquement
triés
• Exige un seul type d’éléments
TreeSet
• Les éléments insérés sont automatiquement
triés
• Exige un seul type d’éléments
L’interface TreeSet
https://docs.oracle.com/javase/8/docs
/api/java/util/TreeSet.html
Collection List
List
https://docs.oracle.com/javase/8/docs
/api/java/util/ArrayList.html
LinkedList
• Liste doublement chaînée
LinkedList
D’autres méthodes :
• addFirst(E e) insère l’élément spécifié au début de
la liste
• addLast(E e) ajoute l’élément spécifié à la fin de la
liste (tout comme add ())
L’interface LinkedList
https://docs.oracle.com/javase/8/docs
/api/java/util/LinkedList.html
ArrayList vs LinkedList
. ArrayList est plus rapide pour l'opération de
recherche (get).
. LinkedList est plus rapide pour des opérations
d'insertion et de suppression.
. LinkedList utilise un chaînage double (deux
pointeurs) d'où une consommation de mémoire plus
élevée.
. Utilisez les ArrayList pour trier et accéder aux
données et utilisez les LinkedList pour manipuler les
données.
Opérations sur les listes
Collection Map
Map
https://docs.oracle.com/javase/8/docs
/api/java/util/Hashtable.html
HashMap
. HashMap fonctionne aussi avec un couple (clé, valeur)
https://docs.oracle.com/javase/8/docs
/api/java/util/HashMap.html
TreeMap
. TreeMap fonctionne aussi avec un couple (clé, valeur)
https://docs.oracle.com/en%2Fjava%2Fj
avase%2F11%2Fdocs%2Fapi%2F%2F/java.ba
se/java/util/TreeMap.html
04 { ..
Les interfaces Graphiques
} ..
Plan du chapitre
01 Généralités et Composants