Comment grer des objets en Java - PowerPoint PPT Presentation

1 / 38
About This Presentation
Title:

Comment grer des objets en Java

Description:

Abstraction d'un emplacement m moire auquel on peut affecter diff rentes valeurs ... A e ! 1 double s. 2 CompteBancaire compte001; 3 compte112 = new ... – PowerPoint PPT presentation

Number of Views:78
Avg rating:3.0/5.0
Slides: 39
Provided by: Litz6
Category:
Tags: aie | comment | des | grer | java | objets

less

Transcript and Presenter's Notes

Title: Comment grer des objets en Java


1
Comment gérer des objets en Java ?
  • IP 10

2
Plan du document
  • Concepts de base
  • Variable
  • Type primitifs
  • Littéraux Java
  • Chaînes de caractères
  • Définition de variable
  • Quelques opérations sur les variables
  • Modèle objet de JAVA
  • Classe
  • Objet
  • Méthode
  • Constructeur
  • Règles de bonne conduite
  • Commentaires
  • Idiomes
  • Questions pratiques
  • Les fichiers java
  • La chaîne de développement
  • Caractéristiques de Java
  • Bibliographie

3
Variable
  • Abstraction d'un emplacement mémoire auquel on
    peut affecter différentes valeurs au cours du
    temps
  • Possède un type
  • Sert à programmer les attributs

Vision interne
100
0000 0000
Vision  utilisateur 
x Entier
0000 0000
x _at_
1111 1111
65535
x 65535
?
x
x
1111 1111
Table d' adresses
Affectation
Mémoire
4
Les types primitifs JAVA
  • Type booléen
  • boolean (false lt true)
  • Type entier
  • int (32 bits), long (64 bits)
  • byte (8 bits), short (16 bits)
  • Type réel
  • float (32 bits), double (64 bits)
  • Type caractère
  • char (16 bits Unicode)

5
Littéraux JAVA
  • Booléens
  • false, true
  • Entiers
  • 14, 012 (octal), 0x15 (hexadécimal)
  • Réels
  • 3., .6, 3.14, 31.4E-1
  • Caractères
  • 's', 'K', 'i', '\n', '\t'

6
Le cas particulier des chaînes de caractères
  • Pas un type simple
  • String
  • Exemple
  • String phrase
  • phrase "ceci est sur une ligne !"
  • phrase "ceci est un texte sur une ligne \n
    écrit sur deux lignes"

7
Déclaration et définition dune variable
  • Déclarer
  • Nommer une variable
  • Lui associer un type gt lui associer des
    opérations possibles
  • Définir lui réserver de la place en mémoire
  • Déclarer et définir une variable en java
  • nomDeType nomDeVariable
  • Attention aux majuscules / minuscules / espaces
    /point virgule
  • Exemples
  • int unNombre
  • int un Nombre
  • int unnombre
  • int un, nombre

De la rigueur !
8
Initialisation de variable
  • A la définition, pas de valeur prédéfinie
  • int unNombre
  • unNombre 3
  • Initialisation à la définition
  • int unNombre 3

?
unNombre
3
unNombre
3
unNombre
9
Quelques opérations
  • Affectation
  • Exemple daffectation échange du contenu de
    deux variables
  • Opérations arithmétiques
  • Conversion de type

10
Affectation
  • Permet dassigner une valeur à une variable
  • Sémantique
  • Sens de lecture
  • Variable (adresse mémoire) à affecter (variable à
    gauche de l'affectation)
  • Valeur (à droite de l'affectation)
  • Constante
  • Calculée (expression).

int x, y x 0 y x x x 1
11
Échange du contenu de deux variables
int x, y, aux x 128 y 256 aux x //
(1) sauvegarde du contenu de x x y // (2) y
aux // (3) restauration
2
128
x
256
y
1
3
aux
12
Opérateurs arithmétiques
Opérateurs binaires Addition Multiplication /
Division Modulo
Opérateurs unaires - Négation Incrémentation
de 1 -- Décrémentation de 1
tronquée si les arguments sont entiers
13
Exemples dopérations arithmétiques
  • int x, y
  • x 9
  • y - 6
  • x x 1
  • x
  • y
  • y - y
  • x x / y
  • y 11 x

14
Conversion de types (casting)Pour les bons
  • Doivent être faites explicitement s'il y a un
    risque de perte d'information
  • (type) expression
  • Troncation

int i 65 char c (char) i // c vaut
A char c 'B' int i c // i
vaut 66
double f 3.14 int i (int) f // i
vaut 3
15
Les concepts objet rappel
  • Classe
  • "Moule" qui conditionne tous les comportements
  • Objet
  • Instance d'une (seule) classe
  • Attribut
  • Méthode
  • Action élémentaire sur un objet
  • Message
  • Demande d'exécution d'une méthode

16
Les classes et leurs instances - Rappel
  • Classe Moule
  • Instances générées à partir des classes

CompteBancaire
compte001
solde réel 0 déposer(montant
réel) retirer(montant réel) donneMoiTonSolde()
réel
compte112
17
Déclarer une référence en Java
  • Déclaration dune variable une référence sur un
    objet potentiel dune classe
  • CompteBancaire compte001
  • compte001 peut référencer un objet CompteBancaire
  • l objet de CompteBancaire nexiste pas encore
    !!!

Avant
Après
retirer (montant)
donne Moi Ton Solde() réel
???
compte001
deposer (montant)
18
Créer un objet en Java
  • Créer lobjet et lassocier à la référence
  • compte001 new CompteBancaire()
  • réserve la mémoire pour stocker lobjet
  • associe lobjet à la référence

Avant
Après
compte001
compte001
19
Déclarer et instancier
  • CompteBancaire compte001 new CompteBancaire()

Avant
Après
compte001
20
Écrire une classe en java
Concept
Java
class CompteBancaire double solde CompteBancair
e () solde 0 void deposer100 () solde
solde 100
CompteBancaire
solde Réel 0
deposer100()
CompteBancaire.java
21
Utiliser une classe java
  • Créer une référence et une instance (un objet)
  • Invocation d'une méthode (opération) sur une
    instance
  • référenceInstance.nomOpération()

Concept
Java

CompteBancaire compte001 compte001 new
CompteBancaire () compte001.deposer100()
compte001CompteBancaire
deposer100()

TestCompteBancaire.java
22
Classe plus complète en java
class CompteBancaire double solde CompteBancair
e () solde 0 CompteBancaire (double
depotInitial) solde depotInitial void
deposer100 () solde solde 100 void
deposer (double montant) solde solde
montant void retirer100 () solde solde -
100 void retirer (double montant) solde
solde - montant double donneMoiTonSolde ()
return solde
  • Variable d'instance
  • propres à chaque instance (objet)
  • Constructeur
  • retourne implicitement une instance
  • même nom que la classe
  • 1 ou n constructeurs
  • Méthode (d'instance)
  • signature
  • type résultat (peut être void)
  • nom méthode
  • paramètres (type nom)
  • plusieurs méthodes de même nom

23
Utiliser une classe (2)
Java

double s CompteBancaire compte001,
compte112 compte001 new CompteBancaire
() compte112 new CompteBancaire(1000) compte00
1.deposer (100) compte112.deposer100() s
compte001.donneMoiTonSolde () System.out.println(
"solde " s) System.out.println("solde "
compte112.solde)

TestCompteBancaire.java
24
Passage de paramètres
deposer(m)
compte001CompteBancaire

void deposer(double montant) solde solde
montant
CompteBancaire compte001 double m compte001
new CompteBancaire() compte001.deposer100() m
200 compte001.deposer(m)

1. Evaluation de l'expression m
2. Copie de la valeur et affectation à montant
3. Calcul et Mise à jour de solde
m
solde
montant
200
200
300
200
25
Valeur retournée par une méthode
  • Instruction return

donneMoiTonSolde()
compte001CompteBancaire

double donneMoiTonSolde() return solde
CompteBancaire compte001 new
CompteBancaire() double s s
compte001.donneMoiTonSolde()

1. Evaluation de l'expression
2. Retour de la valeur
3. Affectation à s
s
solde
0
0
0
???
26
Aïe !
1 double s 2 CompteBancaire compte001 3 compte112
new CompteBancaire(1000) 4 compte001.deposer
(100) 5 compte112.deposer100(100) 6 compte112.de
poser(100, 200) 7 compte001.donneMoiTonSolde
() 8 System.out.println("solde "
s) 9 System.out.println("solde "
compte112.solde)
double interet() resultat solde 0.04
void deposer 100 () solde solde 100E

27
Règles de bonne conduite
  • Commenter les programmes
  • écrit 1 fois
  • Relu n fois !
  • Noms utilisés (classe, objet, méthode, ..)
  • Parlant
  • Respecter les conventions
  • Classe 1ere lettre majuscule, changement de mot
    majuscule
  • attribut minuscules, changement de mot
    majuscule
  • méthode minuscules, changement de mot majuscule
  • NomDuConstructeur nom de la classe
  • Indenter les programmes !

28
Commentaires JAVA
  • Il faut commenter ses programmes
  • Style C
  • / définition des attributs
  • de la classe /
  • int solde
  • Style C
  • int solde // solde du compte bancaire
  • Style JavaDoc
  • / Methode permettant de déposer 100 Euros
  • sur un compte bancaire /
  • void deposer100()
  • solde solde 100

29
Idiomes relatifs aux désignations en JAVA
  • Classes et constructeurs
  • Lettre majuscule suivie de lettres (majuscules ou
    minuscules) et/ou de chiffres
  • CompteBancaire
  • Variables, méthodes (sauf les constructeurs)
  • Lettre minuscule suivie de lettres (majuscules ou
    minuscules) et/ou chiffres
  • x, unCompteBancaire, consulter()
  • Articulations
  • Marquées par une majuscule
  • unCompteBancaire

30
Questions pratiques
  • Les fichiers java
  • comment répartir le code source dans différents
    fichiers ?
  • par où commence l'ordinateur ?
  • Chaîne de développement

31
Comment répartir le source dans différents
fichiers
  • Une classe un fichier
  • Il n y a quune classe par fichier
  • Le fichier doit porter le nom de la classe
     .java 
  • Cest la définition du  moule 

class CompteBancaire double solde
CompteBancaire () solde 0 double
donneMoiTonSolde () return solde
CompteBancaire.java
32
Quel est le point dentrée ?
  • Le système a besoin de savoir où il doit
    commencer
  • une méthode spéciale main()
  • dans une classe à part ? dans un autre fichier
  • utilise les "moules" définis dans les fichiers
    correspondant aux classes

class TestCompteBancaire public static void
main(String argv) CompteBancaire compte001
new CompteBancaire() double s s
compte001.donneMoiTonSolde()
TestCompteBancaire.java
33
Chaîne de développement
  • Organiser (arborescence)
  • Éditer et sauver
  • xemacs TestCompteBancaire.java
  • xemacs CompteBancaire.java
  • Compiler
  • javac TestCompteBancaire.java
  • Génère
  • soit des erreurs de compilation
  • soit TestCompteBancaire.class (CompteBancaire.clas
    s)
  • Éxécuter
  • java TestCompteBancaire
  • exécution
  • soit incorrecte (plante ou non conforme aux
    prévisions)
  • soit correcte (Ouf!)

Corriger syntaxe
Corriger logique
34
Bibliographie
  • Le tutoriel http//www-inf.int-evry.fr/COURS/jav
    a
  • Java de l'esprit à la méthode
  • Michel Bonjour, Gilles Falquet, Jacques Guyot,
    André Le Grand
  • International Thomson Publishing, 1996
  • http//www.javasoft.com/
  • Tutoriel de sun http//java.sun.com/docs/books/t
    utorial/index.html

35
Diapos non utilisées suite à réorganition IP10
36
Un peu de vocabulaire
class CompteBancaire double solde CompteBancair
e () solde 0 CompteBancaire (double
depotInitial) solde depotInitial void
deposer (double montant) solde solde
montant void retirer (double montant) solde
solde - montant double donneMoiTonSolde ()
return solde void capitaliser (int nbMois)
int i for (i 1 i lt
nbMois i i 1) solde solde i

Attribut (d'instance)
Paramètre
Variables locales
37
Durée de vie des variables
Itérations
  • variables
  • Durée de vie
  • début de vie leur définition
  • fin de vie fin du bloc
  • inaccessibles de l'extérieur du bloc
  • les modifier ne modifie rien à l'extérieur

38
Exemple
Itérations
nbMois
// economiserPuisConsommer int nbMois
Lire.i() System.out.println("Solde avant phase
d'économie " solde) for (int i 1 i lt
nbMois i ) solde solde i
System.out.println("Solde au bout de
"nbMois" "solde) for (int i nbMois i
gt 1 i i - 1) solde solde - i
System.out.println("Solde au bout de
"2nbMois" "solde)
i
i variable locale au bloc "for"
un autre i !
i
décrémente i !
Write a Comment
User Comments (0)
About PowerShow.com