Vous êtes sur la page 1sur 42

1

Programmation Java
2-1
Travailler avec Pre-Code écrit

Copyright © 2020 , Oracle et/ou ses filiales. Tous droits réservés. 2


2

Aperçu
• Cette leçon couvre les sujets suivants :
−Lire et comprendre un-préprogramme Java écrit composé
de classes et d'objets en interaction
−Appliquer le concept d'héritage dans les solutions de problèmes
−Tester les classes de
−manière
Décrivez isolée
quand il est plus approprié d'utiliser
Liste des
un
que
un tableaux
tableau

JP 2-1
Travailler avec Pre
-Code écrit Copyright ©
2020, Oracle et/ou ses filiales. Tous droits réservés. 3

3
Modification de programmes existants
•Lorsque vous programmez dans des scénarios réels,
par exemple pour une entreprise, vous maintenez
et modifiez souvent des programmes existants.
•Dans de nombreux cas, les problèmes commerciaux que
vous résolvez seront liés à des programmes existants
créés par d'autres programmeurs.
• Être capable de modifier un programme existant est une
compétence précieuse que vous devrez appliquer dans la
plupart des rôles de programmation
Si vous lisez le code d'une autre personne qui n'est pas commenté,
il peut être plus difficile de comprendre son objectif.

JP 2-1
Utilisation de code pré-écrit Copyright © 2020, Oracle et/ou ses filiales. Tous droits réservés. 4

4
Scénario de code pré-écrit
•Imaginez une application bancaire
•Que doit faire une application bancaire ?
−Autoriser un utilisateur à : créer un compte, déposer dans le
compte, retirer du compte, afficher le solde du compte et
calculer les intérêts
•Quels sont les composants d'une application bancaire ?
−Comptes
•Que doit faire chaque composant ?
−Créer, déposer et retirer

JP 2-1
Utilisation de code pré-écrit Droits d'auteur © 2020, Oracle et/ou ses filiales. Tous droits réservés. 5

5
Étapes pour installer l'étude de cas
JavaBank
1. Déplacez le fichier JavaBank.jar.zip vers un
emplacement sur votre
ordinateur
2. Ne décompressez pas
le fichier !
3. Lancer Eclipse

4. Sélectionner un emplacement d'espace de travail


et lancez le Établi

JP 2-1
Travailler avec-Code
Pre écrit Copyright ©
2020, Oracle et/ou ses filiales. Tous droits réservés.
6

6
Étapes pour importer des fichiers de code dans
Workspace
5. Cliquez sur Fichier, puis sur Importer. 6.
Développez le dossier Général 7. Sélectionnez des
projets existants dans Workspace 8. Cliquez sur Suivant
9. Cliquez sur Sélectionner un fichier d'archive, puis sur
Parcourir. 10. Localisez le fichier JavaBank.jar.zip sur
votre ordinateur local et cliquez sur Ouvrir
JP 2-1
Utilisation de code pré-écrit Copyright © 2020, Oracle et/ou ses filiales. Tous droits réservés. 7

7
Étapes pour importer des fichiers de code dans
Workspace
11. S'assurer que le projet
JavaBank(/) est coché

12. Cliquez sur


Terminer

13. Cliquez sur Oui à tous si vous êtes invité à remplacer


les fichiers

JP 2-1
Travailler avec Pre
-Code écrit Copyright ©2020, Oracle et/ou ses filiales. Tous droits réservés. 8

8
Lancement de JavaBank
1. Développez JavaBank
le projet
2. Développez le package par défaut
3. Double-cliquez sur le fichier JavaBank.java

4. Pour lancerJavaBank , compilez et exécutez le


Application JavaBank.java
JP 2 -1
Travailler avec Pre-Code écrit Copyright © 2020 , Oracle et/ou ses filiales. Tous droits réservés. 9

9
Lancement de
JavaBank
5. Le JavaBankLa fenêtre apparaîtra

• Aucun manuel d'utilisation n'est disponible pour cette


Expérimentez-le toutleauferez
application car vous long cours
de cette

JP 2-1
Travailler avec Pre
-Code écrit Copyright ©2020, Oracle et/ou ses filiales. Tous droits réservés. 10

10
Expérimentation avec JavaBank
•Tâche rapide
−Ouvrez et examinez le code des classes
suivantes :
• Compte
• Compte de crédit

•Utilisation des deux classes :


1. Combien de champs d'instance existe-t-il ?
2. Combien de constructeurs et en quoi diffèrent-ils ?
3. Quelle est la relation entre les classes ?

11
JP 2-1
Utilisation de code pré-écrit Copyright © 2020, Oracle et/ou ses filiales. Tous droits réservés. 11

12
Expérimentation avec JavaBank
• Solution de tâche
1. Combien de champs d'instance existe-t-
− Compte
il ? –3
− Compte de crédit– 4 (1 local, 3 Super)
2. Combien de constructeurs et en quoi diffèrent-ils ?
− Compte – 2, Aucun paramètre, 3 paramètres.
− Compte de crédit- 2, Aucun paramètre, 3 paramètres.
3. Quelle est la relation entre les classes ?
− Compte est la superclasse de la sous-classe Compte de crédit

JP 2 -1
Travailler avec Pre-Code écrit Copyright © 2020 , Oracle et/ou ses filiales. Tous droits réservés. 12

13
Expérimentation avec JavaBank
•Tâche rapide
−Regardez les classes de pilotes d'essai :
• testBank
• testCreditAccount

1. Donnez un bref aperçu du but de chaque classe.


2. Pouvez-vous créer un objet Account sans avoir accès à la
classe CreditAccount ?
3. Pouvez-vous créer un objet CreditAccount sans avoir accès à
la classe Account ?

14
JP 2-1
Utilisation de code pré-écrit Copyright © 2020, Oracle et/ou ses filiales. Tous droits réservés. 13

15
Expérimentation avec JavaBank
• Solution de tâche
1. Donnez un bref aperçu du but de chaque classe.
• Ils testent la création et l'utilisation de comptes ou de comptes de crédit.
• Ils testent également les méthodes internes de chaque classe.

2. Pouvez-vous créer un objet Account sans avoir accès à


le Compte de crédit
.class?– Oui

3. Pouvez-vous créerCompte
un de crédit
objet sans avoir
accéder à la classe Compte ? - No
n

JP 2 -1
Travailler avec Pre-Code écrit Copyright © 2020 , Oracle et/ou ses filiales. Tous droits réservés. 14

16
Examen du code pré-écrit
•Lorsque vous recevez un programme (tel que JavaBank)
et que vous n'êtes pas familier avec le code, il est
important que vous expérimentiez l'application et que
vous examiniez le code sous-jacent.
•L'utilisation de l'application permet d'identifier les
modifications et les fonctionnalités supplémentaires qui
peuvent être ajoutées
•L'examen de l'application ainsi que du code sous-
jacent vous permet de vous familiariser avec le
fonctionnement de l'application

17
JP 2-1
Utilisation de code pré-écrit Droits d'auteur © 2020, Oracle et/ou ses filiales. Tous droits réservés. 15

18
Considérations lors de l'examen du code
•Lors de l'examen du code, gardez les points suivants à
l'esprit :
•Rechercher des commentaires dans le code
Les commentaires d'une seule ligne sont précédés d'une double barre
oblique

/* Les commentaires s'étendant sur plus d'une ligne sont encadrés


de barres obliques inverses et d'astérisques */

•Tâche : Identifier les classes

19
1. Examinez chaque classe et lisez les commentaires pour mieux
comprendre la structure du programme

Une classe est un plan pour un objet.


Une classe décrit ce qu'un objet sait et ce qu'un objet fait.

JP 2-1
Utilisation de code pré-écrit Droits d'auteur © 2020, Oracle et/ou ses filiales. Tous droits réservés. 16

20
Techniques lors de l'examen du code
•Voici d'autres techniques à essayer lors de la lecture de
code :
−Réexécuter l'application
−Apprendre la structure de haut niveau du code, puis trouver le
point d'entrée et comment il se ramifie à partir de là
−Comprendre les constructions
−Effectuer des tests
−Si vous avez toujours du mal à comprendre le code, demandez à
quelqu'un d'autre ce qu'il en pense.
−Contacter d'autres programmeurs dans un forum de
programmeurs

21
JP 2-1
Utilisation de code pré-écrit Copyright © 2020, Oracle et/ou ses filiales. Tous droits réservés. 17

22
La classe de compte
•Tâche rapide : examinez la classe Compte et notez le
nombre de :
1. Constructeurs
−Quelles valeurs sont affectées aux champs de chaque constructeur ?
2. Méthode
−Combien de méthodes sont les accesseurs ?
−Combien de méthodes sont les mutateurs ?

Un accesseur est une méthode qui peut accéder au contenu d'un


objet mais ne modifie pas cet objet.
Un mutateur est une méthode qui permet de modifier un objet.

JP 2-1
Utilisation de code pré-écrit Copyright © 2020, Oracle et/ou ses filiales. Tous droits réservés. 18

18
Constructeurs dans la classe de
compte
• Solution de tâche : 1. Constructeurs
− Le constructeur par défaut définit :
• Nom du compte sur NULL (vide)
• Numéro de compte à 0
• Solde à 0.
Compte()

− Le constructeur surchargé prend des valeurs comme paramètres et


définit ces valeurs sur l'instance de Compte en cours de création
Compte(Chaîne nom , Int Num, Int amt)

JP 2 -1
Travailler avec Pre-Code écrit Copyright © 2020 , Oracle et/ou ses filiales. Tous droits réservés. 19

24
Méthode Description
public vide Dépôt(int amt) Met à jour le solde avec un montant de dépôt

Méthodes de la classe de
Met àcompte
public vide retirer(int amt)
jour le solde avec un montant de retrait

public vide setAccountName(nom de Définit la valeur du nom du compte


Solution de tâche : 2. Méthodes
chaîne)
public vide setAccountNum(int num) Définit la valeur du numéro de compte
public vide setBalance(int num) Définit la valeur du solde du compte
public Chaîne getAccountName() Renvoie la valeur du nom du compte.
public int getAccountNum() Renvoie la valeur du numéro de compte.
public int getBalance() Renvoie la valeur du solde du compte.
Imprime les valeurs de champ d'instance, ceci
public void print()
est inclus pour permettre les tests d'isolation

JP 2-1
Utilisation de code pré-écrit Copyright © 2020, Oracle et/ou ses filiales. Tous droits réservés. 20

25
Test des classes de manière isolée
•Lorsque vous créez une classe, il est recommandé de la
tester indépendamment avant de la tester dans
l'application pour détecter les problèmes dans ce code.
−C'est ce qu'on appelle les tests d'isolement ou les tests unitaires
−L'objectif principal des tests unitaires est de vérifier qu'une
unité individuelle (une classe, en Java) fonctionne
correctement avant d'être combinée avec d'autres
composants du système.
•Après avoir créé la classe, testez-la de manière isolée en
créant un petit programme qui appelle les
constructeurs, les modificateurs et les accesseurs

JP 2-1
Utilisation de code pré-écrit Copyright © 2020, Oracle et/ou ses filiales. Tous droits réservés. 21

21

26
Exemple de programme de
test unitaire
• L'exemple de programme de test unitaire (testBank.java) ci-
possède
dessous une main et crée des instances de la classe
Account
TestBank.java
est un programme
test unitaire.
pour

JP 2-1
Travailler avec Pre
-Code écrit Copyright ©2020, Oracle et/ou ses filiales. Tous droits réservés. 22

Exemple de test de classes en isolement


public class TestBank { public static void
main(String[] args) {
Utilisation du constructeur avec des valeurs
Compte a1 = nouveau compte(« Sanjay Gupta »,11556,300) ;
Compte a2 = nouveau compte() ; // Utilisation du constructeur par défaut
Compte a3 = nouveau compte() ; // Utilisation du constructeur
par défaut //Définir les valeurs des instances créées à l'aide
du constructeur par défaut a2.setAccountName(« He Xai ») ;
a2.setAccountNum(22338) ; a2.setBalance(500) ;
a3.setAccountName(« Ilya
Mustafana ») ;a3.setAccountNum(44559) ; a3.setBalance(1000) ;
2
// Imprimer les comptes 3
a1.print() ; a2.print() ;
a3.print() ;
}//end, méthode main
}//end class testBank

JP 2-1
Utilisation de code pré-écrit Droits d'auteur © 2020, Oracle et/ou ses filiales. Tous droits réservés.

23

La méthode de dépôt
•Il s'agit du code de la méthode de dépôt de la classe
Compte
Dépôt public annulé (Int Amt)
{ solde = solde + amt ;
Dépôt de la méthode }//end

•Lorsque cette méthode est appelée, la valeur de la


zone d'édition est transmise en tant que amt et
ajoutée au champ solde de l'instance de compte
courant.
•Des actions similaires sont effectuées par les méthodes
withdraw, setAccountName, setAccountNum et setBalance

JP 2-1
Utilisation de code pré-écrit Copyright © 2020, Oracle et/ou ses filiales. Tous droits réservés. 24

28
La méthode getaccountname
•Vous trouverez ci-dessous le code de la méthode
getAccountName
Chaîne publique getAccountName()
{ return
accountName ;
Méthode }//end getAccountName
•Lorsque getAccountName() est appelé, la valeur de
accountName pour l'instance de compte en cours est
renvoyée à la méthode appelante
•Des actions similaires sont effectuées par les méthodes
getAccountNum et getBalance

JP 2-1
Utilisation de code pré-écrit Copyright © 2020, Oracle et/ou ses filiales. Tous droits réservés. 25

25
Héritage
•L'héritage se produit lorsque vous avez une classe qui est
une classe parente (appelée superclasse) et une autre
classe qui est une classe enfant (appelée sous-classe)
•La classe enfant est dite dérivée de la classe parente
•La raison d'avoir une classe enfant est de garder les
informations séparées
•L'enfant peut hériter de toutes les méthodes et
champs de son parent, mais peut alors agir de
L'héritage peut être défini comme le processus par lequel un objet
acquiert les propriétés d'un autre.

manière autonome
JP 2-1
Utilisation de code pré-écrit Copyright © 2020, Oracle et/ou ses filiales. Tous droits réservés. 26

26
Extension de la classe de compte
•Supposons que vous souhaitiez créer un nouveau type de
compte qui se comporte différemment d'un compte
standard
•Pour créer ce type, vous pouvez étendre la classe Account
•Envisager un compte de crédit
•Une sous-classe qui traite des informations Compte
sur le montant du crédit associé à un compte champs
peut être créée en tant que sous-classe Comportements

Compte de crédit

champ
s
Comportemen
ts

JP 2-1
Utilisation de code pré-écrit Droits d'auteur © 2020, Oracle et/ou ses filiales. Tous droits réservés. 27

27
Utilisation du mot-clé extend
•Utiliser le mot-clé extend lors de la création d'une sous-
classe qui étend une classe existante
public class CreditAccount étend le compte{

}//end class CreditAccount


•Cela étendra la classe de compte en tant que compte de
crédit
•Il aura le même comportement qu'un compte standard
mais ajoutera la possibilité de définir la limite de crédit
•La classe CreditAccount héritera de toutes les méthodes de
la classe Account

JP 2-1
Utilisation de code pré-écrit Copyright © 2020, Oracle et/ou ses filiales. Tous droits réservés. 28

28
Tâche d'héritage
•Tâche rapide : examiner la relation entre le
Classe de compte et classe Compte de crédit
1. Champs d'instance
• Combien de champs d'instance sont associés à un compte de crédit ?

2. Constructeurs
• Dans quel ordre les classes sont-elles construites ?

3. Méthode
• Comment est-il possible que la méthode d'impression CreditAccount
puisse accéder aux champs d'instance de la classe Account ?

JP 2-1
Utilisation de code pré-écrit Copyright © 2020, Oracle et/ou ses filiales. Tous droits réservés. 29

29
Solution suggérée pour l'héritage
1. Champs d'instance
− Nombre de champs d'instance associés à un crédit
compte? - 4 champs d'instance (1Compte
dans de crédit
,3
Compte) pouces
2. Constructeurs
− Dans quel ordre les classes sont-elles construites
– Compte
? –
Compte de crédit
3. Méthode
− Comment est-il possible que
Compte
l' de crédit
La méthode
accéder aux champs d'instance de la classe Compte
– Champs
? peut
d'impression dans le
Classe de compte
ont défaut visibilité

JP 2 -1
Travailler avec Pre-Code écrit Copyright © 2020 , Oracle et/ou ses filiales. Tous droits réservés. 30
30
ArrayList ou Array ?
•En Java, un tableau a une longueur fixe
•Une fois la baie créée, le programmeur doit connaître la
longueur de la baie car elle ne peut pas croître ou réduire
en taille.
•Si vous ne pouvez pas prédire le nombre d'objets que
vous allez stocker, vous pouvez utiliser un ArrayList au
lieu d'utiliser un Array de longueur fixe

JP 2-1
Utilisation de code pré-écrit Copyright © 2020, Oracle et/ou ses filiales. Tous droits réservés. 31

Opérations ArrayList
•Dans un tableau, vous devez connaître la longueur et le
nombre actuel d'éléments stockés
•Dans un ArrayList, vous pouvez utiliser des comportements
prédéfinis pour effectuer ces opérations
−IsEmpty : renvoie true si cette liste ne contient aucun élément

36
−size : renvoie le nombre d'éléments de cette liste.

Un ArrayList est un tableau qui peut stocker plusieurs types


d'objets et peut croître et réduire dynamiquement selon les
besoins.

JP 2-1
Utilisation de code pré-écrit Copyright © 2020, Oracle et/ou ses filiales. Tous droits réservés. 32

Autres opérations ArrayList


ArrayList, opération Description
ajouter Ajoute à la fin de cette liste.

clair Supprime tous les éléments de cette liste.

Contient Renvoie true si cette liste contient l'élément spécifié.

Avoir Renvoie l'élément à la position spécifiée dans cette liste.

enlever Supprime l'élément de cette liste.

poser Remplace l'élément à la position spécifiée dans cette liste.

Réduit la capacité de cette instance ArrayList à la taille


trimToSize
actuelle de la liste.

JP 2-1 3
Utilisation de code pré-écrit Copyright © 2020, Oracle et/ou ses filiales. Tous droits réservés. 3

37
ArrayList ou Array ?
•L'application JavaBank utilise des tableaux pour stocker
les données dans les comptes
•Les méthodes de création, de retrait, de dépôt et
d'affichage manipulent les données pour produire le
résultat souhaité

Il est donc difficile d'ajouter continuellement de nouveaux


comptes, car vous manquerez d'espace dans votre tableau de
longueur fixe.

JP 2-1
Utilisation de code pré-écrit Copyright © 2020, Oracle et/ou ses filiales. Tous droits réservés. 34

ArrayList dans JavaBank


•Dans l'application JavaBank, vous pouvez utiliser un
ArrayList à la place du tableau myAccounts pour :
−Stocker dynamiquement les comptes
−Stocker des comptes d'épargne et de crédit

UL'utilisation d'un ArrayList réduit la quantité de code requise pour
travailler avec vos données.

38
tiliser les opérations ArrayList pour ajouter, supprimer,
rechercher, etc.

JP 2-1
Utilisation de code pré-écrit Droits d'auteur © 2020, Oracle et/ou ses filiales. Tous droits réservés. 35

Terminologie
•Les termes clés utilisés dans cette leçon sont les suivants :
−Applicateurs
−Liste des tableaux
−Héritage
−Essais d'isolement
−Mutateurs

JP 2-1
Utilisation de code pré-écrit Droits d'auteur © 2020, Oracle et/ou ses filiales. Tous droits réservés. 36

39
Résumé
• Dans cette leçon, vous devriez avoir appris à :
−Lire et comprendre un-préprogramme Java écrit composé
de classes et d'objets en interaction
−Appliquer le concept d'héritage dans les solutions de problèmes
−Tester les classes de
−manière
Décrivez isolée
quand il est plus approprié d'utiliser
Liste des
un
que
un tableaux
tableau

JP 2-1
Travailler avec Pre
-Code écrit Copyright ©
2020, Oracle et/ou ses filiales. Tous droits réservés.37

40
38

Vous aimerez peut-être aussi