Rappels sur la Programmation java - NSY208 / 2010-2011

tonguescurlySoftware and s/w Development

Nov 17, 2012 (4 years and 7 months ago)

442 views

R
APPELS

SUR

LA

P
ROGRAMMATION

JAVA


NSY208 / 2010
-
2011

Plan (1)


Concepts Programmation OO


Fondamentaux de Java


Interfaces et Classes


Exceptions


Collections et généricité


Programmation événementielle


Assertions et
JUNIT



2

DJBEL
-

16
-
122010

Plan (2) pour le 14.12.2010


XML et sérialisation


Programmation
concurrentielle


Introspection


Persistance


RMI


Programmation native

3

DJBEL
-

2010

Concepts de la
programmation
Orientée Objet



4

DJBEL
-

2010

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

»

5

DJBEL
-

2010

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

6

DJBEL
-

2010

Concepts POO (3) Les polygones

7

DJBEL
-

2010

Fondamentaux
de Java

8

DJBEL
-

2010

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
Ga
rbage
C
ollector


Langage
entièrement à base d’objets


E
xception 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

9

DJBEL
-

2010

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


10

DJBEL
-

2010

Fondamentaux de Java (3)

Méthode

Description

boolean 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éveil
le un objet en attente de verrou

final void

notifyAll()

Réveille tous les objet
s 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


11

DJBEL
-

2010

Fondamentaux de Java
(4)


Déclaration : [portée] [static] [final] type nom


Portée
:

12

DJBEL
-

2010

Visibilité

Public

Protected

Default

Private

Depuis

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

Fondamentaux de Java
(
5
)

13

DJBEL
-

2010

Interface et
Classe

14

DJBEL
-

2010

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 ?

:


P
eut contenir des méthodes abstraites ou non


P
eut partiellement implémenter une interface


Ne peut pas être déclarée final


Méthodes abstraites ne doivent pas être privées


15

DJBEL
-

2010

Interface et classe (2)


Classe concrète


D
oit 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

16

DJBEL
-

2010

Interface et Classe (3)

17

DJBEL
-

2010

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

18

Interface et Classe (5)



La classe concrète doit
implémenter toutes les
méthodes qui sont
encore abstraites

DJBEL
-

2010

19

Interface et Classe (6)



Classe interne et classe
anonyme

DJBEL
-

2010

20

Exceptions

21

DJBEL
-

2010

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

22

DJBEL
-

2010

Exceptions
(2)

23

DJBEL
-

2010


Une hiérarchie d’exceptions :


Erreurs, on ne peut pas les intercepter


Exceptions qui sont recouvrable

Exceptions
(3)

24

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

Collection et
Généricité

25

DJBEL
-

2010

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

26

DJBEL
-

2010

Collection et généricité (2)

27

DJBEL
-

2010

Class


Map

Set

List

Ordre

Tri

HashMap

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

Collection et généricité
(3)


DJBEL
-

2010

28

Collection et généricité
(4)


DJBEL
-

2010

29

Collection et
généricité
(5)

30

DJBEL
-

2010

Programmation
événementielle

31

DJBEL
-

2010

Programmation événementielle (1)

32

DJBEL
-

2010

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

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
)

33

DJBEL
-

2010

Programmation événementielle (3)

34

DJBEL
-

2010

Programmation événementielle (4)

35

DJBEL
-

2010

Programmation
événementielle (5)

36

DJBEL
-

2010