36
RAPPELS SUR LA PROGRAMMATION JAVA NSY208 / 2010-2011

R APPELS SUR LA P ROGRAMMATION JAVA NSY208 / 2010-2011

Embed Size (px)

Citation preview

Page 1: R APPELS SUR LA P ROGRAMMATION JAVA NSY208 / 2010-2011

RAPPELS SUR LA PROGRAMMATION JAVA

NSY208 / 2010-2011

Page 2: R APPELS SUR LA P ROGRAMMATION JAVA NSY208 / 2010-2011

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

Page 3: R APPELS SUR LA P ROGRAMMATION JAVA NSY208 / 2010-2011

3

Plan (2) pour le 14.12.2010• XML et sérialisation• Programmation concurrentielle• Introspection• Persistance• RMI• Programmation native

DJBEL- 2010

Page 4: R APPELS SUR LA P ROGRAMMATION JAVA NSY208 / 2010-2011

4

Concepts de la programmation Orientée Objet

DJBEL- 2010

Page 5: R APPELS SUR LA P ROGRAMMATION JAVA NSY208 / 2010-2011

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

Page 6: R APPELS SUR LA P ROGRAMMATION JAVA NSY208 / 2010-2011

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

Page 7: R APPELS SUR LA P ROGRAMMATION JAVA NSY208 / 2010-2011

7

Concepts POO (3) Les polygones

DJBEL- 2010

Page 8: R APPELS SUR LA P ROGRAMMATION JAVA NSY208 / 2010-2011

8

Fondamentaux de Java

DJBEL- 2010

Page 9: R APPELS SUR LA P ROGRAMMATION JAVA NSY208 / 2010-2011

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

Page 10: R APPELS SUR LA P ROGRAMMATION JAVA NSY208 / 2010-2011

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

Page 11: R APPELS SUR LA P ROGRAMMATION JAVA NSY208 / 2010-2011

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

Page 12: R APPELS SUR LA P ROGRAMMATION JAVA NSY208 / 2010-2011

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

Page 13: R APPELS SUR LA P ROGRAMMATION JAVA NSY208 / 2010-2011

13

Fondamentaux de Java (5)

DJBEL- 2010

Page 14: R APPELS SUR LA P ROGRAMMATION JAVA NSY208 / 2010-2011

14

Interface et Classe

DJBEL- 2010

Page 15: R APPELS SUR LA P ROGRAMMATION JAVA NSY208 / 2010-2011

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

Page 16: R APPELS SUR LA P ROGRAMMATION JAVA NSY208 / 2010-2011

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

Page 17: R APPELS SUR LA P ROGRAMMATION JAVA NSY208 / 2010-2011

17

Interface et Classe (3)

DJBEL- 2010

Page 18: R APPELS SUR LA P ROGRAMMATION JAVA NSY208 / 2010-2011

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

Page 19: R APPELS SUR LA P ROGRAMMATION JAVA NSY208 / 2010-2011

19

Interface et Classe (5)• La classe concrète doit

implémenter toutes les méthodes qui sont encore abstraites

DJBEL- 2010

Page 20: R APPELS SUR LA P ROGRAMMATION JAVA NSY208 / 2010-2011

20

Interface et Classe (6)• Classe interne et classe

anonyme

DJBEL- 2010

Page 21: R APPELS SUR LA P ROGRAMMATION JAVA NSY208 / 2010-2011

21

Exceptions

DJBEL- 2010

Page 22: R APPELS SUR LA P ROGRAMMATION JAVA NSY208 / 2010-2011

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

Page 23: R APPELS SUR LA P ROGRAMMATION JAVA NSY208 / 2010-2011

23

Exceptions (2)

DJBEL- 2010

• Une hiérarchie d’exceptions : – Erreurs, on ne peut pas les intercepter – Exceptions qui sont recouvrable

Page 24: R APPELS SUR LA P ROGRAMMATION JAVA NSY208 / 2010-2011

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

Page 25: R APPELS SUR LA P ROGRAMMATION JAVA NSY208 / 2010-2011

25

Collection et Généricité

DJBEL- 2010

Page 26: R APPELS SUR LA P ROGRAMMATION JAVA NSY208 / 2010-2011

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

Page 27: R APPELS SUR LA P ROGRAMMATION JAVA NSY208 / 2010-2011

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

Page 28: R APPELS SUR LA P ROGRAMMATION JAVA NSY208 / 2010-2011

28

Collection et généricité (3)

DJBEL- 2010

Page 29: R APPELS SUR LA P ROGRAMMATION JAVA NSY208 / 2010-2011

29

Collection et généricité (4)

DJBEL- 2010

Page 30: R APPELS SUR LA P ROGRAMMATION JAVA NSY208 / 2010-2011

30

Collection et généricité (5)

DJBEL- 2010

Page 31: R APPELS SUR LA P ROGRAMMATION JAVA NSY208 / 2010-2011

31

Programmation événementielle

DJBEL- 2010

Page 32: R APPELS SUR LA P ROGRAMMATION JAVA NSY208 / 2010-2011

Programmation événementielle (1)

32DJBEL- 2010

http://java.sun.com/blueprints/patterns/MVC-detailed.html

Page 33: R APPELS SUR LA P ROGRAMMATION JAVA NSY208 / 2010-2011

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

Page 34: R APPELS SUR LA P ROGRAMMATION JAVA NSY208 / 2010-2011

Programmation événementielle (3)

34DJBEL- 2010

Page 35: R APPELS SUR LA P ROGRAMMATION JAVA NSY208 / 2010-2011

Programmation événementielle (4)

35DJBEL- 2010

Page 36: R APPELS SUR LA P ROGRAMMATION JAVA NSY208 / 2010-2011

Programmation événementielle (5)

36DJBEL- 2010