Vous êtes sur la page 1sur 9

La programmation orientée objet

Objectifs

 A l’issue de ce chapitre, vous devez être en mesure de :


• Expliquer la différence entre la programmation procédurale et la programmation
orientée objet
• Lister les avantages de la programmation orientée objet
Projet SIGIF
SAP NetWeaver Programming – ABAP Objects
FORMATION DES K-USERS, MINISTERE DES FINANCES, DAKAR, 10 avril 2017
Introduction à l’ABAP OBJECT
• Exercices pratiques
Exercices pratiques
Modélisation UML
• Le but est de modéliser certaines classes clé d’une compagnie aérienne :
1. Votre diagramme de classe doit contenir les classes suivantes

2. Rajouter les attributs et les méthodes qui vous semblent appropriés


3. Définir les relations entre les classes
4. Choisir les cardinalités qui vous semblent logiques
Exercices pratiques
Modélisation UML
• Solution
Exercices pratiques
Eléments de syntaxe – Déclaration de classes
• Tache 1
• Créer le programme suivant : ZBC401_##_MAIN (En remplaçant ## par votre trigramme)
 Tache 2
• Dans votre programme déclarer la classe suivante : LCL_AIRPLANE
• Définissez deux attributs privées
• MV_NAME type STRING
• MV_PLANETYPE type SAPLANE-PLANETYPE
• Un attribut statique
• MV_N_O_AIRPLANES type I
• Définir le constructeur de telle sorte qu’à chaque création d’objet, l’attribut MV_N_O_AIRPLANES
soit incrémenté.
• Définir la méthode publique SET_ATTRIBUTES qui permet de donner des valeurs aux attributs privés
• La signature de la méthode doit contenir deux paramètres d’import correspondants aux attributs privés de
la classe
• Implémentez la méthode de telle sorte que les deux attributs soient modifiés en même temps
• Définir la méthode publique DISPLAY_ATTRIBUTES pour afficher les valeurs des attributs.
• Définir la méthode statique DISPLAY_N_O_AIRPLANES qui affiche l’attribut statique
MV_N_O_AIRPLANES
Exercices pratiques
Eléments de syntaxe – Gestion des objets
• Tache 1
• Créer un variable de référence au type de classe LCL_AIRPLANE
• Créer une table interne contenant des lignes de type référence à la classe
LCL_AIRPLANE
 Tache 2 : Créer un section START-OF-SELECTION.
• Créer plusieurs instances de la classe LCL_AIRPLANE
• Après chaque création rajouter l’objet à la table interne (Append)
Exercices pratiques
Eléments de syntaxe – Héritage et évènements
• Tache 1
• Créer des classes LCL_PASSENGER et LCL_CARGO qui héritent de la classe LCL_AIRPLANE.
• Redéfinir la méthode DISPLAY_ATTRIBUTES de la manière suivante:
• Appel de la méthode de la super classe
• Affichage des attributs spécifiques aux sous classes
• Créer les méthodes de sous classe (Get_cargo et GET passengers)
 Tache 2 :
• Créer la classe LCL_CARRIER
• Implémenter les méthodes et attributs en accord avec le diagramme de classes
 Tache 3 :
• Définir l’événement public AIRPLANE_CREATED dans la classe LCL_AIRPLANE
• Générer l’événement depuis le constructeur.
• Dans la classe LCL_CARRIER créer la méthode ON_AIRPLANE_CREATED en tant que
gestionnaire de l’événement AIRPLANE_CREATED
• Enregistrer la méthode gestionnaire de l’événement pour toutes les instances
Eléments de syntaxe – Interfaces
• Tache 1
• Créer les classes ZCL_LOCATION_<TRI> et ZCL_HOTEL_<TRI> en
implémentant l’interface ZIF_SERVICE
• Implémentez les méthodes de l’interface de la manière suivante (Dans une classe
globale):
• Méthode de création : Prend comme paramètre un numéro d réservation et modifie
l’attribut réservation avec ce numéro
• Méthode de modification : Modifie la valeur de l’attribut (Teste s’il n’est pas vide
avant, si c’est le cas remonter une exception)
• Méthode de suppression : Vide l’attribut réservation.
• Méthode d’affichage : Affiche la valeur de la réservation sur l’écran