JP 2 1 SG
JP 2 1 SG
1
Machine Translated by Google
Programmation Java
21
Travailler avec du code préécrit
Copyright © 2020, Oracle et/ou ses sociétés affiliées. Tous les droits sont réservés. 2
2
Machine Translated by Google
Aperçu
• Cette leçon couvre les sujets suivants :
−Lire et comprendre un programme Java préécrit composé de
classes et d'objets interactifs
−Appliquer le concept d'héritage dans les solutions de problèmes
−Tester les classes en isolement
−Décrire quand il est plus approprié d'utiliser une ArrayList qu'une
Array
JP 21
Travailler avec du code préécrit Copyright © 2020, Oracle et/ou ses sociétés affiliées. Tous les droits sont réservés. 3
3
Machine Translated by Google
Modification des programmes existants
• Lorsque vous programmez dans des scénarios réels, comme pour une
entreprise, vous maintiendrez et modifierez 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é,
cela peut compliquer la compréhension de son objectif.
JP 21
Travailler avec du code préécrit Copyright © 2020, Oracle et/ou ses sociétés affiliées. Tous les droits sont réservés. 4
4
Machine Translated by Google
Scénario de code préécrit
•Imaginez une application
bancaire •Que doit faire une application bancaire ?
−Permettre à un utilisateur de : Créer un compte, déposer sur 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 21
Travailler avec du code préécrit Copyright © 2020, Oracle et/ou ses sociétés affiliées. Tous les droits sont réservés. 5
5
Machine Translated by Google
Étapes pour installer l'étude de cas JavaBank
1. Déplacez le fichier [Link] vers un emplacement pratique
sur votre ordinateur
2. Ne décompressez pas le fichier !
3. Lancez Éclipse
4. Sélectionnez un emplacement d'espace
de travail et lancez le WorkBench
JP 21
Travailler avec du code préécrit Copyright © 2020, Oracle et/ou ses sociétés affiliées. Tous les droits sont réservés. 6
6
Machine Translated by Google
Étapes pour importer des fichiers de code dans l'espace de travail
5. Cliquez sur Fichier, puis sur Importer
6. Développez le dossier Général 7. Sélectionnez
Projets existants dans l'espace de travail 8.
Cliquez sur
Suivant
9. Cliquez sur Sélectionner le fichier d'archive et
cliquez sur Parcourir
10. Localisez le fichier [Link] sur votre
ordinateur local et cliquez sur Ouvrir
JP 21
Travailler avec du code préécrit Copyright © 2020, Oracle et/ou ses sociétés affiliées. Tous les droits sont réservés. 7
7
Machine Translated by Google
Étapes pour importer des fichiers de code dans l'espace de travail
11. Assurezvous que le projet
JavaBank (/) est coché
12. Cliquez sur Terminer
13. Cliquez sur Oui pour tout si vous êtes invité à écraser les fichiers
JP 21
Travailler avec du code préécrit Copyright © 2020, Oracle et/ou ses sociétés affiliées. Tous les droits sont réservés. 8
8
Machine Translated by Google
Lancer JavaBank
1. Développez le projet JavaBank 2.
Développez le package par défaut
3. Doublecliquez sur le fichier [Link]
4. Pour lancer JavaBank, compilez et exécutez
l'application [Link]
JP 21
Travailler avec du code préécrit Copyright © 2020, Oracle et/ou ses sociétés affiliées. Tous les droits sont réservés. 9
9
Machine Translated by Google
Lancer JavaBank
5. La fenêtre JavaBank apparaîtra
• Aucun manuel d'utilisation n'est disponible pour cette application car
vous allez l'expérimenter tout au long de ce cours
JP 21
Travailler avec du code préécrit Copyright © 2020, Oracle et/ou ses sociétés affiliées. Tous les droits sont réservés. dix
dix
Machine Translated by Google
Expérimenter avec JavaBank
• Tâche rapide
−Ouvrez et examinez le code des classes suivantes :
• Compte
• Compte de crédit
•En utilisant les deux classes :
1. Combien de champs d'instance existent ?
2. Combien de constructeurs et en quoi diffèrentils ?
3. Quelle est la relation entre les classes ?
JP 21
Travailler avec du code préécrit Copyright © 2020, Oracle et/ou ses sociétés affiliées. Tous les droits sont réservés. 11
11
Machine Translated by Google
Expérimenter avec JavaBank
• Solution de tâche
1. Combien de champs d'instance existent ?
− Compte – 3 −
CreditAccount – 4 (1 local, 3 Super)
2. Combien de constructeurs et en quoi diffèrentils ?
− Compte – 2, aucun paramètre, 3 paramètres.
− CreditAccount 2, Aucun paramètre, 3 paramètres.
3. Quelle est la relation entre les classes ?
− Account est la superclasse de la sousclasse CreditAccount
JP 21
Travailler avec du code préécrit Copyright © 2020, Oracle et/ou ses sociétés affiliées. Tous les droits sont réservés. 12
12
Machine Translated by Google
Expérimenter avec JavaBank
• Tâche rapide
−Regardez les classes de pilotes de test :
• testBank
• testCreditAccount
1. Donnez un bref aperçu du but de chaque classe.
2. Pouvezvous créer un objet Account sans avoir accès à la classe
CreditAccount ?
3. Pouvezvous créer un objet CreditAccount sans avoir
accéder à la classe Compte ?
JP 21
Travailler avec du code préécrit Copyright © 2020, Oracle et/ou ses sociétés affiliées. Tous les droits sont réservés. 13
13
Machine Translated by Google
Expérimenter avec JavaBank
• Tâche Solution
1. Donnez un bref aperçu de l'objectif 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. Pouvezvous créer un objet Compte sans avoir accès à
la classe CreditAccount ? – Oui
3. Pouvezvous créer un objet CreditAccount sans avoir
accès à la classe Account ? Non
JP 21
Travailler avec du code préécrit Copyright © 2020, Oracle et/ou ses sociétés affiliées. Tous les droits sont réservés. 14
14
Machine Translated by Google
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 ainsi que
l'examen du code sousjacent •
L'utilisation de l'application permet l'identification des
modifications et des fonctionnalités supplémentaires qui peuvent être ajo
• L'examen de l'application ainsi que du code sousjacent
vous permet de vous familiariser avec le fonctionnement
de l'application
JP 21
Travailler avec du code préécrit Copyright © 2020, Oracle et/ou ses sociétés affiliées. Tous les droits sont réservés. 15
15
Machine Translated by Google
Considérations lors de l'examen du code
• Lors de l'examen du code, gardez à l'esprit les points suivants : •
Recherchez les commentaires dans le code
// Les commentaires sur une seule ligne sont précédés d'une double barre oblique
/* Les commentaires s'étendant sur plus d'une ligne sont entourés de
barres obliques inverses et d'astérisques */
• Tâche : identifier les classes
1. Examinez chaque classe et lisez les commentaires
pour 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 21
Travailler avec du code préécrit Copyright © 2020, Oracle et/ou ses sociétés affiliées. Tous les droits sont réservés. 16
16
Machine Translated by Google
Techniques lors de l'examen du code
•Voici quelques autres techniques à essayer lors de la lecture de
code :
−Relancer 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 encore du mal à comprendre le code, demandez à quelqu'un
d'autre ce qu'il en pense
−Contacter d'autres programmeurs dans le forum d'un programmeur
JP 21
Travailler avec du code préécrit Copyright © 2020, Oracle et/ou ses sociétés affiliées. Tous les droits sont réservés. 17
17
Machine Translated by Google
La classe de compte
• Tâche rapide : examinez la classe Compte et notez le
nombre de :
1. Constructeurs
−Quelles valeurs sont attribuées aux champs de chaque constructeur ?
2. Méthodes
−Combien de méthodes sont des accesseurs ?
−Combien de méthodes sont des 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 peut modifier un objet.
JP 21
Travailler avec du code préécrit Copyright © 2020, Oracle et/ou ses sociétés affiliées. Tous les droits sont réservés. 18
18
Machine Translated by Google
Constructeurs dans la classe de compte
• Solution de tâche : 1. Constructeurs
−Le constructeur par défaut définit :
• Nom du compte à NULL (vide)
• Numéro de compte à 0
• Balance à 0.
Compte()
−Le constructeur surchargé prend des valeurs comme paramètres et définit
ces valeurs sur l'instance de Account en cours de création
Compte ( nom de chaîne, num int , int amt)
JP 21
Travailler avec du code préécrit Copyright © 2020, Oracle et/ou ses sociétés affiliées. Tous les droits sont réservés. 19
19
Machine Translated by Google
Méthodes dans la classe de compte
Solution de tâche : 2. Méthodes
Méthode Description
dépôt d'annulation publique (int amt) Met à jour le solde avec un montant de dépôt
Met à jour le solde avec un montant de retrait
vide public retirer (int amt)
public void setAccountName(String name) Définit la valeur du nom de compte public void
setAccountNum(int num) public void setBalance(int num) Définit la valeur du numéro de compte
Définit la valeur du solde du compte
chaîne publique 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 du champ d'instance, ceci est
public void print()
inclus pour permettre les tests d'isolement
JP 21
Travailler avec du code préécrit Copyright © 2020, Oracle et/ou ses sociétés affiliées. Tous les droits sont réservés. 20
20
Machine Translated by Google
Tester les classes en isolement
• Lorsque vous créez une classe, il est recommandé de tester la classe
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 qu'elle ne soit combinée avec d'autres
composants du système • Après avoir créé la classe, testezla de manière
isolée en créant un petit programme qui appelle les constructeurs,
les modificateurs et les accesseurs
JP 21
Travailler avec du code préécrit Copyright © 2020, Oracle et/ou ses sociétés affiliées. Tous les droits sont réservés. 21
21
Machine Translated by Google
Exemple de programme de test unitaire
• L'exemple de programme de test unitaire ([Link]) ci
dessous a un main et crée des instances de la classe Account
[Link]
est un programme
de tests unitaires.
JP 21
Travailler avec du code préécrit Copyright © 2020, Oracle et/ou ses sociétés affiliées. Tous les droits sont réservés. 22
22
Machine Translated by Google
Exemple de test de classes dans l'isolement
public class TestBank
{ public static void main(String[] args) { // Utilisation
du constructeur avec des valeurs
Account a1 = new Account("Sanjay Gupta",11556,300); Compte
a2 = nouveau compte(); // Utilisation du constructeur par défaut
Account a3 = new Account(); // Utilisation du constructeur par défaut //
Définir les valeurs des instances créées à l'aide du constructeur par défaut
[Link]("He Xai");
[Link](22338);
[Link](500);
[Link]("Ilya Mustafana");
[Link](44559);
[Link](1000);
// Imprimer les
comptes
[Link]();
[Link]();
[Link](); }//end
method main }//end class testBank
JP 21
Travailler avec du code préécrit Copyright © 2020, Oracle et/ou ses sociétés affiliées. Tous les droits sont réservés. 23
23
Machine Translated by Google
La méthode de dépôt
• Il s'agit du code de la méthode de dépôt de la
Classe de compte
dépôt d'annulation publique (int amt)
{
solde = solde + montant ; }//fin
du dépôt de la méthode
• Lorsque cette méthode est appelée, la valeur de la zone d'édition
est transmise en tant que amt et est ajoutée au champ de solde de
l'instance de compte en cours
• Des actions similaires sont effectuées par les méthodes de
retrait, setAccountName, setAccountNum et setBalance
JP 21
Travailler avec du code préécrit Copyright © 2020, Oracle et/ou ses sociétés affiliées. Tous les droits sont réservés. 24
24
Machine Translated by Google
La méthode getaccountname
• Vous trouverez cidessous le code de la méthode getAccountName
chaîne publique getAccountName() {
renvoie le nom du
compte ; }//méthode de fin getAccountName
• Lorsque getAccountName() est appelée, la valeur de
accountName pour l'instance de compte actuelle est renvoyée
à la méthode appelante
• Des actions similaires sont effectuées par les méthodes getAccountNum
et getBalance
JP 21
Travailler avec du code préécrit Copyright © 2020, Oracle et/ou ses sociétés affiliées. Tous les droits sont réservés. 25
25
Machine Translated by Google
Héritage
• L'héritage, c'est quand vous avez une classe qui est une classe
parente (appelée une superclasse) et une autre classe qui est
une classe enfant (appelée une sousclasse)
• La classe enfant est dite dérivée de la classe parent
• 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 indépendamment
L'héritage peut être défini comme le processus par lequel un objet
acquiert les propriétés d'un autre.
JP 21
Travailler avec du code préécrit Copyright © 2020, Oracle et/ou ses sociétés affiliées. Tous les droits sont réservés. 26
26
Machine Translated by Google
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
• Envisagez un compte de crédit
• Une sousclasse qui gère les informations Compte
sur le montant du crédit associé à un compte des champs
peut être créée en tant que sousclasse comportements
Compte créditeur
des champs
comportements
JP 21
Travailler avec du code préécrit Copyright © 2020, Oracle et/ou ses sociétés affiliées. Tous les droits sont réservés. 27
27
Machine Translated by Google
Utilisation du mot clé extend
• Utilisez le motclé extend lors de la création d'une sousclasse qui
étend une classe existante
la classe publique CreditAccount étend le compte{
}//fin de classe 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 Compte
JP 21
Travailler avec du code préécrit Copyright © 2020, Oracle et/ou ses sociétés affiliées. Tous les droits sont réservés. 28
28
Machine Translated by Google
Tâche d'héritage
• Tâche rapide : examinez la relation entre le
La classe Account et la classe CreditAccount
1. Champs d'instance
• Combien de champs d'instance sont associés à un compte de crédit ?
2. Constructeurs •
Dans quel ordre les classes sontelles construites ?
3. Méthodes •
Comment estil possible que la méthode d'impression CreditAccount puisse accéder au
champs d'instance dans la classe Account ?
JP 21
Travailler avec du code préécrit Copyright © 2020, Oracle et/ou ses sociétés affiliées. Tous les droits sont réservés. 29
29
Machine Translated by Google
Solution suggérée pour l'héritage
1. Champs d'instance
−Combien de champs d'instance sont associés à un compte de
crédit ? 4 champs d'instance (1 dans CreditAccount, 3 dans
Account)
2. Constructeurs
− Dans quel ordre les classes sontelles construites ? – Compte –
Compte créditeur
3. Méthodes
−Comment estil possible que la méthode d'impression CreditAccount
accéder aux champs d'instance dans la classe Account ? – Les champs de
la classe Compte ont une visibilité par défaut
JP 21
Travailler avec du code préécrit Copyright © 2020, Oracle et/ou ses sociétés affiliées. Tous les droits sont réservés. 30
30
Machine Translated by Google
ArrayList ou Array ?
• En Java, un tableau a une longueur
fixe. • Une fois le tableau créé, le programmeur doit
connaître la longueur du tableau, car sa taille ne peut pas
augmenter ou diminuer.
• Si vous avez une situation où 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 21
Travailler avec du code préécrit Copyright © 2020, Oracle et/ou ses sociétés affiliées. Tous les droits sont réservés. 31
31
Machine Translated by Google
Opérations ArrayList
• Dans un tableau, vous devez connaître la longueur et le nombre
actuel d'éléments stockés
• Dans une 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 −size : Renvoie le nombre d'éléments dans cette liste
Un ArrayList est un Array qui peut stocker plusieurs types d'objets et peut
s'agrandir et se réduire dynamiquement selon les besoins.
JP 21
Travailler avec du code préécrit Copyright © 2020, Oracle et/ou ses sociétés affiliées. Tous les droits sont réservés. 32
32
Machine Translated by Google
Autres opérations ArrayList
Opération ArrayList Description
ajouter S'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é.
obtenir Renvoie l'élément à la position spécifiée dans cette liste.
retirer Supprime l'élément de cette liste.
ensemble Remplace l'élément à la position spécifiée dans cette liste.
Ajuste la capacité de cette instance ArrayList à la taille actuelle de la
trimToSize
liste.
JP 21
Travailler avec du code préécrit Copyright © 2020, Oracle et/ou ses sociétés affiliées. Tous les droits sont réservés. 33
33
Machine Translated by Google
ArrayList ou Array ?
• L'application JavaBank utilise Arrays 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é
Cela rend difficile l'ajout continu de nouveaux comptes car vous manquerez
d'espace dans votre tableau de longueur fixe.
JP 21
Travailler avec du code préécrit Copyright © 2020, Oracle et/ou ses sociétés affiliées. Tous les droits sont réservés. 34
34
Machine Translated by Google
ArrayList dans JavaBank
• Dans l'application JavaBank, vous pouvez utiliser une ArrayList à la
place de myAccounts Array pour :
−Stocker dynamiquement les comptes
−Stocker les comptes d'épargne et de crédit
• Utilisez les opérations ArrayList pour ajouter, supprimer, rechercher et
bientôt
L'utilisation d'une ArrayList réduit la quantité de code nécessaire pour travailler
avec vos données.
JP 21
Travailler avec du code préécrit Copyright © 2020, Oracle et/ou ses sociétés affiliées. Tous les droits sont réservés. 35
35
Machine Translated by Google
Terminologie
• Les termes clés utilisés dans cette leçon comprenaient :
−Accessoires
−Arraylist
− Héritage
−Test d'isolement
− Mutateurs
JP 21
Travailler avec du code préécrit Copyright © 2020, Oracle et/ou ses sociétés affiliées. Tous les droits sont réservés. 36
36
Machine Translated by Google
Résumé
• Dans cette leçon, vous devriez avoir appris à :
−Lire et comprendre un programme Java préécrit composé de
classes et d'objets interactifs
−Appliquer le concept d'héritage dans les solutions de problèmes
−Tester les classes en isolement
−Décrire quand il est plus approprié d'utiliser une ArrayList qu'une
Array
JP 21
Travailler avec du code préécrit Copyright © 2020, Oracle et/ou ses sociétés affiliées. Tous les droits sont réservés. 37
37
Machine Translated by Google
38