Programmation objet
Forum INFOMATH :: Enseignement de l'informatique :: INFO - Supérieur (Etudiants et Professionnels) :: C/C++
Page 1 sur 2•
Page 1 sur 2 • 1, 2 
Programmation objet
Bonjour,
Cela fait déjà un moment que j'ai entendu parler de programmation objet. Mais j'aimerai savoir ce que c'est. J'ai déjà cherché, il y a une très longue page sur Wikipédia, mais qui contient des termes qui me sont totalement inconnus et qui sont expliqués, dans une autre longue page.
Pourriez-vous m"expliquer ceci assez brievement, sachant que je ne connais presque rien en C/C++.
Cela fait déjà un moment que j'ai entendu parler de programmation objet. Mais j'aimerai savoir ce que c'est. J'ai déjà cherché, il y a une très longue page sur Wikipédia, mais qui contient des termes qui me sont totalement inconnus et qui sont expliqués, dans une autre longue page.
Pourriez-vous m"expliquer ceci assez brievement, sachant que je ne connais presque rien en C/C++.
< MiNux > c'est con une entreprise qui s'appelle apple
< MiNux > c'est comme si en france on avait fraise, banane...
< Sh4d0 > ..orange
< MiNux > j'ai rien dit
< Dju > Abusé, je me suis endormi en cours ce matin -_-
< Gib > Ca craint... Et le prof a dit quoi ?
< Dju > C'est moi le prof... :/

ProgVal- Membre fondamental


- Messages : 108
Inscrit le : 09 Fév 2008
Localisation : Univers>Voie lactée> Bras_d'Orion>Planète Terre>Europe> France
Feuille de personnage
Capacité linguistique:


(997/1000)
Re: Programmation objet
ça fait longtemps que j'ai posé la même question mais personne m'a répondu
mosa- Modérateur




- Messages : 636
Inscrit le : 11 Nov 2007
Age : 22
Localisation : los angeles
Feuille de personnage
Capacité linguistique:


(995/1000)
Re: Programmation objet
mosa a écrit:ça fait longtemps que j'ai posé la même question mais personne m'a répondu
parfois la question s'oublie et se perd parmi les autres messages. Il faut insister et rappeler pour que ça sort lorsqu'on clique sur 'Nouveaux messages'.
Nabil - tunis
خير الناس أنفعهم للناس
خير الناس أنفعهم للناس

nabiL- Admin


- Messages : 1908
Inscrit le : 19 Mar 2007
Localisation : Tunisie
Feuille de personnage
Capacité linguistique:


(999/1000)
Re: Programmation objet
ProgVal a écrit:Bonjour,
Cela fait déjà un moment que j'ai entendu parler de programmation objet. Mais j'aimerai savoir ce que c'est. J'ai déjà cherché, il y a une très longue page sur Wikipédia, mais qui contient des termes qui me sont totalement inconnus et qui sont expliqués, dans une autre longue page.
Pourriez-vous m"expliquer ceci assez brievement, sachant que je ne connais presque rien en C/C++.
Pour comprendre la programmation Objet, il faut d'abord critiquer un peu la programmation classique dite modulaire ou procédurale.
Prenons par exemple le langage PASCAL. Il est procédural.
Un programme donné apporte une solution à un problème donné. Prenons par exemple le problème suivant:
Stockage d'un ou plusieurs nombres entiers dans un tableau, avec la possibilité de:
- modifier un nombre connaissant sa position "pos", la nouvelle valeur est "Y"
- et vérifier l'existence d'un nombre "Z" dans le tableau
En PASCAL, on doit déclarer les variables suivantes pour la manipulation du tableau:
- le tableau "T"
- la taille "N" du tableau
- la position "pos"
- l'entier "Y" et "Z"
- et l'indice de parcours "i"
On peut implémenter un sous-programme (procédure ou fonction) pour chaque opération sur le tableau:
- procédure pour saisir le tableau : Saisir(T,N)
- procédure pour modification : Modifier(T,N,POS,Y)
- fonction de test d'existence : Existe(T,N,Z)
Ca se complique d'avantage lorsqu'on décide un jour d'utiliser ces fonctionnalités pour remplir le tableau avec des Chaines de caractères au lieu des Entiers ...
Ca se complique plus lorsqu'on veut manipuler un tableau de Structures de données telles que:
- tableau de Fichier
- tableau de Personne
- tableau de de fonctions !!!! (chaque case du tableau est une fonction qui fait un traitement donné)
Pour cela, il faut toujours refaire tout le programme (TOUT !!!)
Alors que les opérations faites sur les données sont les mêmes:
- Saisie ou stockage dans un tableau
- Modification d'un élément
- Test d'existence d'un élément
La Conception Orientée Objet propose une solution à ce problème!
Il s'agit de définir les structures génériques suivantes:
1) ELEMENT: classe qui va jouer le rôle des types entiers, chaines, ... (tout type)
2) TAB_ELEMENT: tableau d'éléments ELEMENT
un objet ELEMENT doit être capable de :
- retourner son contenu: donc il doit disposer par exemple d'une fonction (méthode) GetVal()
- modifier son contenu (sa valeur): méthode SetVal(newElement: ELEMENT).
- se comparer à un autre élément: méthode CompareTo(element: ELEMENT) --> true ou false
un objet TAB_ELEMENT doit être capable de:
- ajouter un élément: méthode AddElement(newElement: ELEMENT)
- vérifier l'existence d'un élément Existe(element: ELEMENT) --> true ou false
Avec cette philosophie, on peut gagner beaucoup de temps, et surtout, on devient plus proche de la logique des choses! Ca nécessite beaucoup plus d'effort de conception par rapport à la programmation procédurale.
... à suivre
Nabil - tunis
خير الناس أنفعهم للناس
خير الناس أنفعهم للناس

nabiL- Admin


- Messages : 1908
Inscrit le : 19 Mar 2007
Localisation : Tunisie
Feuille de personnage
Capacité linguistique:


(999/1000)
Re: Programmation objet
Merci pour cette explication. Mais il me reste quelques questions:
1. Qu'est-ce qu'une classe?
2. Qu'est-ce qu'une méthode?
3. Pourquoi peut-on appeller une méthode à partir d'un objet, et pas à partir d'une fonction?
Et puis un p'tit truc au passage: en TI-Basic, les types entier, flottant, long, double, short sont confondus.
De plus, on fonction peut servir à plusieurs choses: left(X,Y).
-si X est une liste, left() retourne les Y premiers éléments
-si X est une chaîne de caractère, left() retourne les Y premiers caractères
1. Qu'est-ce qu'une classe?
2. Qu'est-ce qu'une méthode?
3. Pourquoi peut-on appeller une méthode à partir d'un objet, et pas à partir d'une fonction?
Et puis un p'tit truc au passage: en TI-Basic, les types entier, flottant, long, double, short sont confondus.
De plus, on fonction peut servir à plusieurs choses: left(X,Y).
-si X est une liste, left() retourne les Y premiers éléments
-si X est une chaîne de caractère, left() retourne les Y premiers caractères
< MiNux > c'est con une entreprise qui s'appelle apple
< MiNux > c'est comme si en france on avait fraise, banane...
< Sh4d0 > ..orange
< MiNux > j'ai rien dit
< Dju > Abusé, je me suis endormi en cours ce matin -_-
< Gib > Ca craint... Et le prof a dit quoi ?
< Dju > C'est moi le prof... :/

ProgVal- Membre fondamental


- Messages : 108
Inscrit le : 09 Fév 2008
Localisation : Univers>Voie lactée> Bras_d'Orion>Planète Terre>Europe> France
Feuille de personnage
Capacité linguistique:


(997/1000)
Re: Programmation objet
La réponse existe déjà dans le texte: une classe peut être assimilée à
un ensemble de paramètres et des fonctions manipulant ces paramètres.
Par exemple: une classe appelée RECTANGLE doit contenir des paramètres
LONGUEUR et LARGEUR. Elle doit avoir des méthodes telles que
SetLongueur(ln), SetLargeur(lg), CalculAire(), CalculPerim() ...
Ces paramètres sont appelés Attributs de la classe RECTANGLE.
Ces fonctions sont appelées Méthodes de la classe RECTANGLE.
Dans un programme, on doit créer un objet RECTANGLE et bénéficier de
ses méthodes publiques (posez la question c'est quoi Publique?)
Les instructions Java suivante créent un rectangle (2,5) et calcule son aire:
@+
un ensemble de paramètres et des fonctions manipulant ces paramètres.
Par exemple: une classe appelée RECTANGLE doit contenir des paramètres
LONGUEUR et LARGEUR. Elle doit avoir des méthodes telles que
SetLongueur(ln), SetLargeur(lg), CalculAire(), CalculPerim() ...
Ces paramètres sont appelés Attributs de la classe RECTANGLE.
Ces fonctions sont appelées Méthodes de la classe RECTANGLE.
Dans un programme, on doit créer un objet RECTANGLE et bénéficier de
ses méthodes publiques (posez la question c'est quoi Publique?)
Les instructions Java suivante créent un rectangle (2,5) et calcule son aire:
- Code:
RECTANGLE rect = new RECTANGLE();
rect.SetLongueur(5);
rect.SetLargeur(2);
double aire = rect.getAire();
@+
Nabil - tunis
خير الناس أنفعهم للناس
خير الناس أنفعهم للناس

nabiL- Admin


- Messages : 1908
Inscrit le : 19 Mar 2007
Localisation : Tunisie
Feuille de personnage
Capacité linguistique:


(999/1000)
Re: Programmation objet
Effectivement,
Qu'est-ce que public? J'ai entendu parler d'une histoire de code que l'on peut voir, ...
Qu'est-ce que public? J'ai entendu parler d'une histoire de code que l'on peut voir, ...
< MiNux > c'est con une entreprise qui s'appelle apple
< MiNux > c'est comme si en france on avait fraise, banane...
< Sh4d0 > ..orange
< MiNux > j'ai rien dit
< Dju > Abusé, je me suis endormi en cours ce matin -_-
< Gib > Ca craint... Et le prof a dit quoi ?
< Dju > C'est moi le prof... :/

ProgVal- Membre fondamental


- Messages : 108
Inscrit le : 09 Fév 2008
Localisation : Univers>Voie lactée> Bras_d'Orion>Planète Terre>Europe> France
Feuille de personnage
Capacité linguistique:


(997/1000)
Re: Programmation objet
Si tu t'adresses à une calculatrice et tu appuies sur le bouton: RACINE CARREE, qu'est-ce qui se passe?
La racine carré du nombre entré est calculée automatiquement.
Est-ce que tu sais comment a été calculée cette racine carrée?
euhh, pas forcément!
Par analogie, s'il y avait une classe appelée CALCULATRICE, elle devrait disposer d'une méthode PUBLIQUE appelée CALCUL_RACINE_CARREE(..)
Elle est dite publique cette méthode parce tout le monde (tout le publique) peut l'appeler et l'utiliser. Cette méthode peut par exemple appeler une autre méthode interne qui calcule la racine carrée en utilisantr une suite mathématique assez comliquée. Cette méthode "interne" est dite PRIVEE. On ne peut pas l'appeler directement pour plusieurs raisons ... on en parlera plutard (à la demande)

a+
La racine carré du nombre entré est calculée automatiquement.
Est-ce que tu sais comment a été calculée cette racine carrée?
euhh, pas forcément!
Par analogie, s'il y avait une classe appelée CALCULATRICE, elle devrait disposer d'une méthode PUBLIQUE appelée CALCUL_RACINE_CARREE(..)
Elle est dite publique cette méthode parce tout le monde (tout le publique) peut l'appeler et l'utiliser. Cette méthode peut par exemple appeler une autre méthode interne qui calcule la racine carrée en utilisantr une suite mathématique assez comliquée. Cette méthode "interne" est dite PRIVEE. On ne peut pas l'appeler directement pour plusieurs raisons ... on en parlera plutard (à la demande)
a+
Nabil - tunis
خير الناس أنفعهم للناس
خير الناس أنفعهم للناس

nabiL- Admin


- Messages : 1908
Inscrit le : 19 Mar 2007
Localisation : Tunisie
Feuille de personnage
Capacité linguistique:


(999/1000)
Re: Programmation objet
Je comprend toujours rien...
< MiNux > c'est con une entreprise qui s'appelle apple
< MiNux > c'est comme si en france on avait fraise, banane...
< Sh4d0 > ..orange
< MiNux > j'ai rien dit
< Dju > Abusé, je me suis endormi en cours ce matin -_-
< Gib > Ca craint... Et le prof a dit quoi ?
< Dju > C'est moi le prof... :/

ProgVal- Membre fondamental


- Messages : 108
Inscrit le : 09 Fév 2008
Localisation : Univers>Voie lactée> Bras_d'Orion>Planète Terre>Europe> France
Feuille de personnage
Capacité linguistique:


(997/1000)
Re: Programmation objet
ProgVal a écrit:Je comprend toujours rien...
c'est le plus mauvais commentaire qu'on peut trouver après une explication aussi claire que celle là !
Rien rien ????
Sami - Methodix, tunis
Le génie de Newton a consisté à dire que la lune tombe alors que tout le monde voit bien qu'elle ne tombe pas.
(Paul Valéry)
Le génie de Newton a consisté à dire que la lune tombe alors que tout le monde voit bien qu'elle ne tombe pas.
(Paul Valéry)

methodiX- Admin


- Messages : 811
Inscrit le : 22 Mar 2007
Localisation : marsa - IPEST
Feuille de personnage
Capacité linguistique:


(1000/1000)
Re: Programmation objet
Je viens de remarquer:
Parce qu'il y a des trucs que l'on ne peut pas appeller?nabiL a écrit:tout le monde (tout le publique) peut l'appeler et l'utiliser.
< MiNux > c'est con une entreprise qui s'appelle apple
< MiNux > c'est comme si en france on avait fraise, banane...
< Sh4d0 > ..orange
< MiNux > j'ai rien dit
< Dju > Abusé, je me suis endormi en cours ce matin -_-
< Gib > Ca craint... Et le prof a dit quoi ?
< Dju > C'est moi le prof... :/

ProgVal- Membre fondamental


- Messages : 108
Inscrit le : 09 Fév 2008
Localisation : Univers>Voie lactée> Bras_d'Orion>Planète Terre>Europe> France
Feuille de personnage
Capacité linguistique:


(997/1000)
Re: Programmation objet
Oui Exactement! C'est tout à fait logique d'ailleurs ...
Tu peux dire à un architecte construis moi un plan pour une maison.
Mais tu ne peux en aucun cas lui imposer de suivre des étapes bien précises, parce que c'est son métier, ce n'est pas le tien.
Donc, tout ce qui est "publique" est visible par tout le monde.
Tout ce qui est "privé" est "de la cuisine interne"
a+
Tu peux dire à un architecte construis moi un plan pour une maison.
Mais tu ne peux en aucun cas lui imposer de suivre des étapes bien précises, parce que c'est son métier, ce n'est pas le tien.
Donc, tout ce qui est "publique" est visible par tout le monde.
Tout ce qui est "privé" est "de la cuisine interne"
a+
Nabil - tunis
خير الناس أنفعهم للناس
خير الناس أنفعهم للناس

nabiL- Admin


- Messages : 1908
Inscrit le : 19 Mar 2007
Localisation : Tunisie
Feuille de personnage
Capacité linguistique:


(999/1000)
Re: Programmation objet
Bon... Je vais pas chercher à comprendre, de toute façon, c'est comme ça.
< MiNux > c'est con une entreprise qui s'appelle apple
< MiNux > c'est comme si en france on avait fraise, banane...
< Sh4d0 > ..orange
< MiNux > j'ai rien dit
< Dju > Abusé, je me suis endormi en cours ce matin -_-
< Gib > Ca craint... Et le prof a dit quoi ?
< Dju > C'est moi le prof... :/

ProgVal- Membre fondamental


- Messages : 108
Inscrit le : 09 Fév 2008
Localisation : Univers>Voie lactée> Bras_d'Orion>Planète Terre>Europe> France
Feuille de personnage
Capacité linguistique:


(997/1000)
Re: Programmation objet
ProgVal 
Les méthodes publiques d'un objet sont "les procédures" et "fonction" que l'utilisateur (développeur) peut appeler.
Les méthodes privées sont utilisées généralement par les méthodes publiques. Elles sont locales à l'objet lui même ... et non visible en dehors de ce dernier.
Les méthodes publiques d'un objet sont "les procédures" et "fonction" que l'utilisateur (développeur) peut appeler.
Les méthodes privées sont utilisées généralement par les méthodes publiques. Elles sont locales à l'objet lui même ... et non visible en dehors de ce dernier.
Sami - Methodix, tunis
Le génie de Newton a consisté à dire que la lune tombe alors que tout le monde voit bien qu'elle ne tombe pas.
(Paul Valéry)
Le génie de Newton a consisté à dire que la lune tombe alors que tout le monde voit bien qu'elle ne tombe pas.
(Paul Valéry)

methodiX- Admin


- Messages : 811
Inscrit le : 22 Mar 2007
Localisation : marsa - IPEST
Feuille de personnage
Capacité linguistique:


(1000/1000)
Re: Programmation objet
Je crois que vous avez omis de bien expliquer ce qu'est un objet car l'idée que je trouve ici est un peu vague.
Le paradigme Objet est toute une vision du monde le monde est visualisé et manipulé comme étant un ensemble d'objets. Par exemple le paradigme objet défini une voiture comme étant un objet cet objet est lui aussi composé d'autres objets (un moteur, des roues, des essuies glasses,,,) pour conduire une voiture l'utilisateur n'a pas besoin de connaitre la composition de la voiture ce que manipule l'utilisateur est appelé interface qui peut être présentée par le tableau de bord et les pédales de gaz, l'embrayage et le frein et la boite de transmission de vitesses.
Un objet présente des méthodes qui permettent de modifier son état appelé les méthodes par exemple accélérer(), freiner(), changerVitesse() et il présente aussi des attributs/propriétés qui indiquent son état quantiteEssence, vitesseVehicule, niveauBatterie...
Certaines des méthodes et des attributs sont cachées ou encapsulés car l'utilisateur ne doit pas les manipuler directement mais elles doivent être manipulés à travers l'interface dite publique. C'est à dire l'interface qui permet à tout le monde de manipuler l'objet.
Les éléments non publiques sont des éléments privés qui changent d'un objet à l'autre par exemple le bloc moteur peut être à l'arrière du véhicule, les roues arrières sont les roues motrices, voiture double pont. La connaissance de ces détails n'influe pas sur la manipulation de l'objet car ils constituent la mécanique interne (ou cuisine interne) de l'objet.
Le paradigme Objet est toute une vision du monde le monde est visualisé et manipulé comme étant un ensemble d'objets. Par exemple le paradigme objet défini une voiture comme étant un objet cet objet est lui aussi composé d'autres objets (un moteur, des roues, des essuies glasses,,,) pour conduire une voiture l'utilisateur n'a pas besoin de connaitre la composition de la voiture ce que manipule l'utilisateur est appelé interface qui peut être présentée par le tableau de bord et les pédales de gaz, l'embrayage et le frein et la boite de transmission de vitesses.
Un objet présente des méthodes qui permettent de modifier son état appelé les méthodes par exemple accélérer(), freiner(), changerVitesse() et il présente aussi des attributs/propriétés qui indiquent son état quantiteEssence, vitesseVehicule, niveauBatterie...
Certaines des méthodes et des attributs sont cachées ou encapsulés car l'utilisateur ne doit pas les manipuler directement mais elles doivent être manipulés à travers l'interface dite publique. C'est à dire l'interface qui permet à tout le monde de manipuler l'objet.
Les éléments non publiques sont des éléments privés qui changent d'un objet à l'autre par exemple le bloc moteur peut être à l'arrière du véhicule, les roues arrières sont les roues motrices, voiture double pont. La connaissance de ces détails n'influe pas sur la manipulation de l'objet car ils constituent la mécanique interne (ou cuisine interne) de l'objet.
manianis- Admin


- Messages : 976
Inscrit le : 10 Oct 2007
Localisation : Tunisie
Feuille de personnage
Capacité linguistique:


(999/1000)
Page 1 sur 2 • 1, 2 





