Title: Classe et objet
1Classe et objet
2Sujet de cette lecture
- Classe
- Objet
- Classe versus Objet
- Usage de la mémoire
- Pattern singleton
3Abstract Data Type
- Applying abstraction to the design of data
structures gives rise to ADT. - ADT is a mathematical model of a data structure
that specifies the type of data stored, the
operations supported on them, and the types of
parameters of the operations. - ADT specifies what each operation does, but not
how it does it. Can be expressed in Java with a
Java interface.
4ADT vs Class
- ADT is realized by a concrete data structure,
which is modeled in Java by a class. - A class defines the data stored and the operation
supported by the objects that are instances of
the class. - Unlike interfaces, classes specify how the
operations are performed.
5Classe
- Définition - Abstraction dun objet,
généralisation dun concept, définie les
caractéristiques générique ou essentiel dune
catégorie de chose. - E.g. un étudiant
- Possède (membres)(fields and methods)
- Attribut les éléments de données dune classe
- Méthode fonction ou procédure qui donnent accès
ou modifie les attributs dune classe. Certaine
méthode retourne des valeurs. - Lorsquon définit une classe, on inclut les
attributs et méthodes pertinent au domaine et on
ignore le reste. - Définie le vocabulaire du domaine.
6Abstraction
- Généralisation dune chose dans un certain
contexte e.g un personne - Contexte dune école
- Nom, adresse, numéro de téléphone, etc.
- Contexte dune police
- Nom, adresse, grandeur, couleur des yeux et
cheveux, poids, etc.
7Abstraction
8Information hiding
- Abstraction and information hiding are
complementary concepts - abstraction focuse upon the outside view of an
object (interface) - Information hiding (encapsulation) prevents
clients from seeing its inside view, where the
behavior of the abstraction is implemented.
9Information Hidingmasquage de linformation
- Consiste à limité l'accès aux données dune
classe. - Implémentation
- Décrire comment les choses sont faites ou bien
exécutées. - Interface
- Définie l'accès aux données ou aux comportements.
10Représentation UML - Classe
- Nom singulier
- Attributs sont les choses que la classe connaît.
- Méthodes sont les choses que la classe fait.
11Une classe en Java
class Vehicle private int wheels private
float weight public void initialize(int wh,
float wt) wheels wh weight wt
public int getWheels(void) return
wheels public float getWeight(void)
return weight public float
wheelLoading(void) return weight/wheels
12Spécification dune classe
- Les diagrammes par eux-mêmes ne fournissent pas
assez de détails pour comprendre le problème et
la solution. - Les spécifications fournissent une compréhension
détaillé de la classe et sa sémantique. - Les diagrammes sont donc normalement accompagnés
par quelques spécifications.
13Class name Heater
Category Logical View Documentation
This is an abstract class that provides a
common interface to heaters in the
system. A client object can provide a
required temperature to a heater. The
heaters have a temperature sensor built in and
feedback from this sensor is used to
contol the temperature.
External Documents Export
Control Public Cardinality n
Hierarchy Superclasses none
Associations ltno rolenamegt
TempController in association ltunnamedgt
Public Interface Operations
setTemp Private Interface
Attributes
desiredTemp Temperature
The currently required
temperature for the object to be
heated.
Implementation Attributes
desiredTemp Temperature
The currently required
temperature for the
object to be
heated. State machine No
Concurrency Sequential
Persistence Transient
14Spécification dopération
Operation name getTemp Public
member of TempRamp Return
Class Temperature Arguments
Time currentTime Documentation
Given a normalized time this function returns
the temperature computed from the ramp
function. Concurrency Sequential
15Sujet de cette lecture
- Classe
- Objet
- Classe versus Objet
- Usage de la mémoire
- Pattern singleton
16Quest-ce quun objet?
- De façon non-formel
- Une chose réelle et/ou visible
- Quelque chose qui peut être compris
intellectuellement - Quelque chose vers laquelle une pensée ou action
peut être dirigée - Une instance dune abstraction (classe).
17Notation UML
Souligné donc une instance
18Une instance dune classe un objet
- Identité
- Rôle
- Comportement
- Modificateur
- Itérateur
- Sélecteur
- Constructeur
- destructeur
- État
19Identité d un objet
- La propriété qui distingue un objet de tous
autres objets - OID object identity.
- Assigné par le système à la création de lobjet
(at run-time). - Peut être révélé par un outil débugger.
- Ladresse versus lidentité.
- Certain OS utilise ladresse de mémoire o?
lobjet se trouve (pas la meilleur façon). - Lidentité est indépendant de létat de lobjet.
20État dun objet
- Rôle
- État
- construction
- lorsque un de ses constructions est invogué.
- différent valeurs de ces attributs.
- Lorsque ses attributes changes.
- destruction
- lorsquil nest plus référé.
21Comportement d un objet.
- Rôle
- Comportement
- Modificateur
- Itérateur
- Sélecteur
- Constructeur
- destructeur
- Les objets acceptent des messages (invocation
d un de leurs méthodes) qui feront réagir
l objet. Ce qui peut résulter en un changement
détat chez l objet.
22Les objets collaborent
23Le Paradigme OO
- Ce n est plus un arbre dinvocations de
processus comme dans lapproche structuré. - Mais cest maintenant plutôt un réseau dobjets
en coopération.
24Rappel Une classe en Java
class Vehicle private int wheels private
float weight public void initialize(int wh,
float wt) wheels wh weight wt
public int getWheels(void) return
wheels public float getWeight(void)
return weight public float
wheelLoading(void) return weight/wheels
25Manipulation dun objet
Vehicle v //un pointeur v new
Vehicle() v.initialize(4, 1050.0) int w
v.getWheels() float l v.wheelLoading()
v
Vehicle
Noter la distinction entre la référence à une
classe et linstance dune classe.
26Java - Types primitifs
- types primitifs Java
- int, long
- byte, short, float, double
- boolean, char
- Les classes équivalentes
- Integer, Long, Byte, Double, Boolean, etc.
- Appels par valeurs.
27Java - Types primitifs
28Java - Objet
29Java - Objet
- Appel par référence
- obtenir une référence d un objet.
- obtenir une référence d une nouvelle copie d un
objet. - Distinction
- objet1 objet2 (même objet)
- objet1.equals(objet2) (objet équivalent, i.e.
même état) - faire attention avec les  StringÂ
- Passé des paramètres par copie ou par référence.
30Garbage Collection en Java
- Lorsquun objet nest plus référencé par aucun
pointer, il est alors impossible de récupérer
lobjet. - Alors la JVM vas éventuellement
(non-déterminer) détruire lobjet pour libérer la
mémoire.
31Bonne Programmation
- Éliminer les références aux objets qui ne sont
plus utilisés Effective Java - item 5.
32(No Transcript)
33(No Transcript)
34Sujet de cette lecture
- Classe
- Objet
- Classe versus Objet
- Usage de la mémoire
- Pattern singleton
35Classe versus Objet en Java
- Pour chaque classe utilisée, la JVM crée une et
une seule instance dun objet Class. - Conséquement, malgré quil peut avoir plusieurs
instance (objet) de la classe Student, il y
aura quune seule Class du type Student. - Les attributs et méthodes décorés avec le mot
static appartiennent à la classe.
36Membres de classes statiques
- Les attributs statiques sont gardés dans lespace
statique du programme. - Il y a seulement une copie de lattribut pour la
classe (Peut être considéré comme un attribut de
classe). - Est utilisé pour implémenté ou réduire les
attributs globales.
37Exemple - Attributs statiques
UML (static)
38Classe versus Objet en Java
39Classe versus Objet en Java
- Pour accéder aux éléments dune classe ou dun
objet
40java.lang.Math
41Bonne Programmation
- Favoriser lusage dattribut et de méthode static
Effective Java - item 18.
42Sujet de cette lecture
- Classe
- Objet
- Classe versus Objet
- Usage de la mémoire
- Pattern singleton
43Types de mémoire dans JVM
- Mémoire Statique
- variables globales
- membres de classe statiques
- variables de méthode statiques
- Mémoire Automatique (Pile ou stack)
- variables locales
- paramètres de méthodes
- Free Store (tas ou heap)
- mémoire demandée explicitement par le programmeur
44Address FFFF
Address 0000
Static
Stack
Free Memory
Heap
Fixed size doesnt grow
Grows into higher memory
Grows into lower memory
45(No Transcript)
46Sujet de cette lecture
- Classe
- Objet
- Classe versus Objet
- Usage de la mémoire
- Pattern singleton
47Premier Pattern Singleton
- Exactement une seule instance dune classe est
permise. - Linstance se doit dêtre accessible globalement
et avec un seul point daccès.
48(No Transcript)
49Sujet de cette lecture
- Classe
- Objet
- Classe versus Objet
- Usage de la mémoire
- Pattern singleton