Classe et objet - PowerPoint PPT Presentation

1 / 49
About This Presentation
Title:

Classe et objet

Description:

ADT is a mathematical model of a data structure that specifies the type of data ... Address 0000. Address FFFF. Sujet de cette lecture. Classe. Objet. Classe ... – PowerPoint PPT presentation

Number of Views:105
Avg rating:3.0/5.0
Slides: 50
Provided by: quint3
Category:
Tags: adress | classe | objet

less

Transcript and Presenter's Notes

Title: Classe et objet


1
Classe et objet
2
Sujet de cette lecture
  • Classe
  • Objet
  • Classe versus Objet
  • Usage de la mémoire
  • Pattern singleton

3
Abstract 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.

4
ADT 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.

5
Classe
  • 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.

6
Abstraction
  • 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.

7
Abstraction
8
Information 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.

9
Information 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.

10
Représentation UML - Classe
  • Nom singulier
  • Attributs sont les choses que la classe connaît.
  • Méthodes sont les choses que la classe fait.

11
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

12
Spé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.

13
Class 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
14
Spé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
15
Sujet de cette lecture
  • Classe
  • Objet
  • Classe versus Objet
  • Usage de la mémoire
  • Pattern singleton

16
Quest-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).

17
Notation UML
Souligné donc une instance
18
Une instance dune classe un objet
  • Identité
  • Rôle
  • Comportement
  • Modificateur
  • Itérateur
  • Sélecteur
  • Constructeur
  • destructeur
  • État

19
Identité 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é.

21
Comportement 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.

22
Les objets collaborent

23
Le 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.

24
Rappel 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

25
Manipulation 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.
26
Java - 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.

27
Java - Types primitifs
  • Appels par valeurs.

28
Java - Objet
  • Appel par référence

29
Java - 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.

30
Garbage 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.

31
Bonne Programmation
  • Éliminer les références aux objets qui ne sont
    plus utilisés Effective Java - item 5.

32
(No Transcript)
33
(No Transcript)
34
Sujet de cette lecture
  • Classe
  • Objet
  • Classe versus Objet
  • Usage de la mémoire
  • Pattern singleton

35
Classe 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.

36
Membres 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.

37
Exemple - Attributs statiques
UML (static)
38
Classe versus Objet en Java
39
Classe versus Objet en Java
  • Pour accéder aux éléments dune classe ou dun
    objet

40
java.lang.Math
41
Bonne Programmation
  • Favoriser lusage dattribut et de méthode static
    Effective Java - item 18.

42
Sujet de cette lecture
  • Classe
  • Objet
  • Classe versus Objet
  • Usage de la mémoire
  • Pattern singleton

43
Types 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

44
Address FFFF
Address 0000
Static
Stack
Free Memory
Heap
Fixed size doesnt grow
Grows into higher memory
Grows into lower memory
45
(No Transcript)
46
Sujet de cette lecture
  • Classe
  • Objet
  • Classe versus Objet
  • Usage de la mémoire
  • Pattern singleton

47
Premier 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)
49
Sujet de cette lecture
  • Classe
  • Objet
  • Classe versus Objet
  • Usage de la mémoire
  • Pattern singleton
Write a Comment
User Comments (0)
About PowerShow.com