0% ont trouvé ce document utile (0 vote)
29 vues24 pages

Nfa032 02

Les classes en POO Java présentations générales

Transféré par

larryrazafindrabe6
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
29 vues24 pages

Nfa032 02

Les classes en POO Java présentations générales

Transféré par

larryrazafindrabe6
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Les classes

NFA032
Présentation n°2
Les classes
• Plan de présentation des notions NFA032
– Notions de base (hors classes) : NFA031
– Notion de classe
• Variable d’instance (non statique)
• Méthode, dont constructeur
• Référence, passage de paramètre, effet de bord
• Interface
• Héritage
• Récursion
– Méthode récursive
– Type récursif : exemple des listes
– Exceptions
Terminologie
• Terme programmation objet / Terme Java
– Même vocabulaire :
• Classe
• objet = instance
– Attribut = champ = variable d’instance / variable non statique
– Attribut commun (partagé) = variable de classe / variable statique
– Fonction / méthode statique
– Méthode / méthode non statique
– envoi de message / appel de méthode ou accès à une variable
• Type enregistrement = classe sans méthode
Exemple : les points
• Ecrire le code Java permettant de :
– Représenter des points du plan (coordonnées
cartésiennes)
– Afficher les informations d’un point
– Créer un nouveau point à partir d’informations
diverses
– Réinitialiser les coordonnées d’un point
– Déplacer un point selon une translation (Dx, Dy)
Les points
• Séance précédente : deux solutions présentées
– Point = objet tableau
– Point = objet d’un type enregistrement
• Rappel de cette solution
• Nouvelle solution proposée
– Point = objet d’une classe
• Deux variantes, basées sur la conception des méthodes
ne retournant pas de résultat direct (exemple : affichage)
Un point = un type enregistrement (1/2)

• Définitions en Java
Un point = un type enregistrement (2/2)
• Extrait du programme de test
Manipulation 1 : les fonctions sont
intégrées au type enregistrement
Manipulation 1 : transformation du
code du test

• Remarque :
– On peut effacer le _point dans le nom des
fonctions constructeurs : [Link]éer(…)
Manipulation 2 : transformation en code
• Principe : objet pur
– Toute fonction f (méthode statique) d’une classe C ayant un
paramètre p de type C est transformée en une méthode non
statique, en effaçant p
static R f(C p, reste)
devient
R f(reste)
– Dans le corps original, remplacer p par this
– Tout appel à la fonction f(e, reste) est remplacé par l’envoi
de message e.f(reste)
• la valeur de e est une référence qui sera liée à this pour cet appel
• l’objet référencé est appelé l’objet receveur du message
– Traitement spécial pour les constructeurs
• Autrement dit :
– Toute méthode d’une classe C a un paramètre implicite this, de
type C, lequel sera lié à l’objet receveur d’un envoi de message.
Un point = une classe (1/3)
• Définition de la classe
Les constructeurs sont
expliqués après…
Un point = une classe (2/3)
• Détail des constructeurs
Un point = une classe (3/3)
• Code du test :
Les constructeurs
• Un constructeur est une méthode
– Appelée via l’opérateur new pour créer un nouvel objet ;
this est lié à l’objet créé lors de l’exécution du corps du
constructeur
– Contraintes syntaxiques :
• Porte le nom de la classe
• Ne doit pas spécifier de type de retour
• Ne contient aucune instruction return
• Retourne toujours this, l’objet créé
– Un constructeur peut en appeler un autre de sa classe
• Appel de la forme this(…)
• Cet appel doit impérativement figurer comme première instruction
du corps du constructeur
Enchaînement des envois de messages
• Principe :
– Plutôt que de définir une méthode ayant un
résultat void, lui faire retourner l’objet receveur
this, donc de type C : cela permettra de
d’enchaîner les envois (envois en cascade)
Classe des points modifiée
• Modification de quelques méthodes :
Classe des points modifiée
• Modification du programme de test :
Exercice : ajout des segments
• Compléter le code pour permettre la
manipulation de segments :
– Un segment est caractérisé par ses deux points
extrémités
– Les services attendus :
• Affichage des caractéristiques d’un segment
• Déplacement d’un segment selon une translation (Dx, Dy)
• Calcul de la longueur d’un segment
Un segment = un enregistrement (1/2)
Un segment = un enregistrement (2/2)
• Suite des fonctions :

• Programme de test :
Un segment = un objet (1/3)
• Définition de la classe :
Un segment = un objet (2/3)
• Suite du code :
Un segment = un objet (3/3)
• Code du programme de test :
Autre exemple : les dates
• Voir
– le support introduction à la programmation objet
en Java
– pages 26 à 31
• Les notions présentées dans ce support pages
1 à 31 sont dans le champ de cette séance.

Vous aimerez peut-être aussi