rappels sur la programmation java
Post on 30-Dec-2015
48 Views
Preview:
DESCRIPTION
TRANSCRIPT
2
Plan (1)• Concepts Programmation OO• Fondamentaux de Java• Interfaces et Classes • Exceptions• Collections et généricité• Programmation événementielle• Assertions et JUNIT
DJBEL- 16-122010
3
Plan (2) pour le 14.12.2010• XML et sérialisation• Programmation concurrentielle• Introspection• Persistance• RMI• Programmation native
DJBEL- 2010
5
Concepts POO (1)• Abstraction– Toute entité est un objet
• Encapsulation – Modéliser au sein d’une seule entité Class, les
propriétés et le comportement de l’objet• Héritage– étendre une classe existante pour la spécialiser– modélisation de la relation « est »
DJBEL- 2010
6
Concepts POO (2)• Polymorphisme : – Possibilité pour un objet de modéliser plusieurs
comportements• Surcharge et redéfinition– une même méthode avec différents paramètres– adapter une méthode spécifiquement
• Agrégation et Composition– regrouper et structurer un ensemble de classes
DJBEL- 2010
9
Fondamentaux de Java (1)• C’est un langage interprété – Les programmes sont compilés dans un code
intermédiaire (byte code) qui s’exécute sur une machine virtuelle : JVM
• Utilisation d’un Garbage Collector• Langage entièrement à base d’objets– Exception des types primitifs (int, boolean,
char…) : Boxing– Une hiérarchie arborescente : toutes les classes
héritent d’une classe de base Object – Un objet une instance de la classe
DJBEL- 2010
10
Fondamentaux de Java (2)• Une syntaxe similaire à C ou C++– Toutes les instructions sont définies dans une classe
• Des outils pour compiler : – JDK, Eclipse, Netbeans, BlueJ
• Un environnement d’exécution (JRE)• Un seul point d’entrée par application :
static void main• Organisation des classes sous la forme de
paquetages
DJBEL- 2010
11
Fondamentaux de Java (3)
Méthode Descriptionboolean equals (Object obj) Déterminer si deux objets sont égaux
void finalize() Appelée par le GC pour libérer les ressources
int hashCode() Renvoie le code hash de l’objet
final void notify() Réveille un objet en attente de verrou
final void notifyAll() Réveille tous les objets en attente
final void wait() Suspendre le thread en cours
String toString() Renvoie la forme texte d’un objet
Une hiérarchie unique sur la base Object
DJBEL- 2010
12
Fondamentaux de Java (4)• Déclaration : [portée] [static] [final] type nom• Portée :
DJBEL- 2010
Visibilité Public Protected Default PrivateDepuis la même classe Oui Oui Oui Oui
Depuis les autres classes du paquetage
Oui Oui Oui Non
Depuis une sous-classe du même paquetage
Oui Oui Oui Non
Depuis une sous-classe ou une classe définie dans un paquetage externe
Oui Non Non Non
15
Interface et classe (1)• Interface « contrat», non instanciée ?: – Déclaration de méthodes pour le comportement – Doit être implémentée : implements– Etendre (extends) une ou plusieurs interfaces
• Class abstraite (abstract), non instanciée ? : – Peut contenir des méthodes abstraites ou non– Peut partiellement implémenter une interface – Ne peut pas être déclarée final – Méthodes abstraites ne doivent pas être privées
DJBEL- 2010
16
Interface et classe (2)• Classe concrète
– Doit implémenter toutes les méthodes abstraites– Peut être interne ou anonyme– Hérite (extends) d’une seule et une seule classe,
« Héritage » multiple par le biais d’interfaces– Une classe final ne peut pas être étendue– Opérateur this pointe vers l’instance courante en exécution– Un Constructeur par défaut, sur-chargeable – Peut redéfinir ou surcharger une méthode de la classe de
base, elle n’a pas accès aux membres privés de la base, super pour appeler le constructeur de la super classe
DJBEL- 2010
18
Interface et Classe (4)• Les membres de
l’interface sont par défaut public
• Une classe abstraite peut partiellement implémenter une interface
• Exemple de surcharge de la fonction somme
DJBEL- 2010
19
Interface et Classe (5)• La classe concrète doit
implémenter toutes les méthodes qui sont encore abstraites
DJBEL- 2010
22
Exceptions (1)• Exception : occurrence d’un évènement qui
interrompt l’exécution normale du programme– Anomalie système :le fichier est inexistant– Bug programmeur : utilisation d’un objet null
• A l’occurrence de l’événement une exception est levée (thrown)
• Elle doit être attrapé (catch) par le processus appelant (handler)
• Il y a au moins un handler celui du main
DJBEL- 2010
23
Exceptions (2)
DJBEL- 2010
• Une hiérarchie d’exceptions : – Erreurs, on ne peut pas les intercepter – Exceptions qui sont recouvrable
24
Exceptions (3)
DJBEL- 2010
• Encadrer le code « suspect » par un block try• Possibilité d’utiliser autant de blocks catch
que d’exception qu’on veut attraper• Utiliser un block finally pour libérer les
ressources• Finally peut générer lui-même des erreurs
26
Collection et généricité (1)• Une collection est un container qui a pour but
de regrouper un ensemble d’objets• Possibilité de manipuler cet ensemble comme
formant un tout• Elle expose un comportement :– Ajouter un élément– Retirer un élément– Connaitre sa taille– Accéder directement à un élément– Itérer
DJBEL- 2010
27
Collection et généricité (2)
DJBEL- 2010
Class Map Set List Ordre TriHashMap Oui Non Non
Hashtable Oui Non Non
TreeMap Oui Oui Naturel
LinkedHashMap Oui Insertion Non
HashSet Oui Non
TreeSet Oui Oui Naturel
LinkedHashSet Oui Insertion
ArrayList Oui Index Non
Vector Oui Index Non
LinkedList Oui Index Non
Programmation événementielle (1)
32DJBEL- 2010
http://java.sun.com/blueprints/patterns/MVC-detailed.html
33
Programmation événementielle (2)• EventObject : véhicule le contexte d’un
évènement• Des éléments actifs qui réagissent à une
action utilisateur• Le modèle qui alerte sur son changement
d’état• ActionListener, PropertyChangeListener qui
interceptent les événements• Des Panels qui se rafraichissent (repaint)
DJBEL- 2010
top related