Programmation objet

Voir le sujet précédent Voir le sujet suivant Aller en bas

Programmation objet

Message par Invité le Mer 27 Fév - 12:26

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++.

Invité
Invité


Revenir en haut Aller en bas

Re: Programmation objet

Message par suneddine le Mer 27 Fév - 13:25

ça fait longtemps que j'ai posé la même question mais personne m'a répondu
avatar
suneddine
Nombre Réel
Nombre Réel

Masculin
Nombre de messages : 730
Age : 31
Localisation : tunisie
Réputation : 5
Points : 3733
Date d'inscription : 11/11/2007

Feuille de personnage
Capacité linguistique:
995/1000  (995/1000)

Revenir en haut Aller en bas

Re: Programmation objet

Message par Napoléon le Mer 27 Fév - 14:26

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
خير الناس أنفعهم للناس
avatar
Napoléon
Admin
Admin

Masculin
Nombre de messages : 2934
Localisation : Tunisie
Réputation : 122
Points : 5283
Date d'inscription : 19/03/2007

Feuille de personnage
Capacité linguistique:
999/1000  (999/1000)

http://infomath.online-talk.net

Revenir en haut Aller en bas

Re: Programmation objet

Message par Napoléon le Mer 27 Fév - 15:30

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
خير الناس أنفعهم للناس
avatar
Napoléon
Admin
Admin

Masculin
Nombre de messages : 2934
Localisation : Tunisie
Réputation : 122
Points : 5283
Date d'inscription : 19/03/2007

Feuille de personnage
Capacité linguistique:
999/1000  (999/1000)

http://infomath.online-talk.net

Revenir en haut Aller en bas

Re: Programmation objet

Message par Invité le Mer 27 Fév - 20:29

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

Invité
Invité


Revenir en haut Aller en bas

Re: Programmation objet

Message par Napoléon le Mer 27 Fév - 21:44

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:

Code:
RECTANGLE rect = new RECTANGLE();
rect.SetLongueur(5);
rect.SetLargeur(2);
double aire = rect.getAire();

@+

_________________
Nabil - tunis
خير الناس أنفعهم للناس
avatar
Napoléon
Admin
Admin

Masculin
Nombre de messages : 2934
Localisation : Tunisie
Réputation : 122
Points : 5283
Date d'inscription : 19/03/2007

Feuille de personnage
Capacité linguistique:
999/1000  (999/1000)

http://infomath.online-talk.net

Revenir en haut Aller en bas

Re: Programmation objet

Message par Invité le Jeu 28 Fév - 19:18

Effectivement,
Qu'est-ce que public? J'ai entendu parler d'une histoire de code que l'on peut voir, ...

Invité
Invité


Revenir en haut Aller en bas

Re: Programmation objet

Message par Napoléon le Jeu 28 Fév - 19:42

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)

Smile
a+

_________________
Nabil - tunis
خير الناس أنفعهم للناس
avatar
Napoléon
Admin
Admin

Masculin
Nombre de messages : 2934
Localisation : Tunisie
Réputation : 122
Points : 5283
Date d'inscription : 19/03/2007

Feuille de personnage
Capacité linguistique:
999/1000  (999/1000)

http://infomath.online-talk.net

Revenir en haut Aller en bas

Re: Programmation objet

Message par Invité le Jeu 28 Fév - 19:59

Je comprend toujours rien...

Invité
Invité


Revenir en haut Aller en bas

Re: Programmation objet

Message par methodiX le Jeu 28 Fév - 22:04

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 ???? Wink

_________________
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)
_____
Cliquer ici: Voir les nouveaux messages depuis votre dernière visite
Cliquer ici: Astuce: Utiliser l'outil "Recherche" du forum
avatar
methodiX
Admin
Admin

Masculin
Nombre de messages : 1260
Localisation : Le couloir de l'école polytechnique de Tunis
Réputation : 68
Points : 4665
Date d'inscription : 22/03/2007

Feuille de personnage
Capacité linguistique:
1000/1000  (1000/1000)

Revenir en haut Aller en bas

Re: Programmation objet

Message par Invité le Ven 29 Fév - 11:47

Je viens de remarquer:
nabiL a écrit:tout le monde (tout le publique) peut l'appeler et l'utiliser.
Parce qu'il y a des trucs que l'on ne peut pas appeller?

Invité
Invité


Revenir en haut Aller en bas

Re: Programmation objet

Message par Napoléon le Ven 29 Fév - 13:30

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" Smile

a+

_________________
Nabil - tunis
خير الناس أنفعهم للناس
avatar
Napoléon
Admin
Admin

Masculin
Nombre de messages : 2934
Localisation : Tunisie
Réputation : 122
Points : 5283
Date d'inscription : 19/03/2007

Feuille de personnage
Capacité linguistique:
999/1000  (999/1000)

http://infomath.online-talk.net

Revenir en haut Aller en bas

Re: Programmation objet

Message par Invité le Sam 1 Mar - 16:20

Bon... Je vais pas chercher à comprendre, de toute façon, c'est comme ça.

Invité
Invité


Revenir en haut Aller en bas

Re: Programmation objet

Message par methodiX le Dim 2 Mar - 4:12

ProgVal Smile

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)
_____
Cliquer ici: Voir les nouveaux messages depuis votre dernière visite
Cliquer ici: Astuce: Utiliser l'outil "Recherche" du forum
avatar
methodiX
Admin
Admin

Masculin
Nombre de messages : 1260
Localisation : Le couloir de l'école polytechnique de Tunis
Réputation : 68
Points : 4665
Date d'inscription : 22/03/2007

Feuille de personnage
Capacité linguistique:
1000/1000  (1000/1000)

Revenir en haut Aller en bas

Re: Programmation objet

Message par manianis le Dim 2 Mar - 14:40

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.

manianis
Nombre Réel
Nombre Réel

Masculin
Nombre de messages : 975
Localisation : Tunisie
Réputation : 4
Points : 3666
Date d'inscription : 11/10/2007

Feuille de personnage
Capacité linguistique:
999/1000  (999/1000)

http://manianis.sitesled.com/

Revenir en haut Aller en bas

Re: Programmation objet

Message par methodiX le Dim 2 Mar - 15:05

wow! Pour comprendre la PO on n'a pas besoin de tout comprendre en même temps: interface, publique, privé ...

la meilleure façon, à mon avis, c'est de commencer là où s'est arrêtée la programmation procédurale! Sinon, ça va être parachutée! scratch

_________________
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)
_____
Cliquer ici: Voir les nouveaux messages depuis votre dernière visite
Cliquer ici: Astuce: Utiliser l'outil "Recherche" du forum
avatar
methodiX
Admin
Admin

Masculin
Nombre de messages : 1260
Localisation : Le couloir de l'école polytechnique de Tunis
Réputation : 68
Points : 4665
Date d'inscription : 22/03/2007

Feuille de personnage
Capacité linguistique:
1000/1000  (1000/1000)

Revenir en haut Aller en bas

Re: Programmation objet

Message par manianis le Dim 2 Mar - 19:53

Etablir un lien entre la programmation procédurale et la programmation orientée objet n'est pas si évident dans la mesure ou la première technique décompose les problèmes en des sous problèmes que le programmeur est sensé résoudre indépendemment du problème principal la deuxième technique observe le problème comme étant un ensemble d'objets dont l'interaction permet de résoudre un problème. Donc à mon avis et celui des experts auquels je fais référence il est incorrect de penser procédural tout en implémentant objet.

Je m'excuse çà parait compliqué... Mais, il sera mieux de s'adresser à la littérature spécialisée.

manianis
Nombre Réel
Nombre Réel

Masculin
Nombre de messages : 975
Localisation : Tunisie
Réputation : 4
Points : 3666
Date d'inscription : 11/10/2007

Feuille de personnage
Capacité linguistique:
999/1000  (999/1000)

http://manianis.sitesled.com/

Revenir en haut Aller en bas

Re: Programmation objet

Message par Contenu sponsorisé


Contenu sponsorisé


Revenir en haut Aller en bas

Voir le sujet précédent Voir le sujet suivant Revenir en haut

- Sujets similaires

 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum