Programmation objet

Poster un nouveau sujet   Répondre au sujet

Page 1 sur 2 1, 2  Suivante

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

Programmation objet

Message par ProgVal le Mer 27 Fév 2008 - 10: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++.

< 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
Membre fondamental

Sexe:Masculin
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  (997/1000)

Revenir en haut Aller en bas

Re: Programmation objet

Message par mosa le Mer 27 Fév 2008 - 11:25

ça fait longtemps que j'ai posé la même question mais personne m'a répondu

mosa
Modérateur
Modérateur

Sexe:MasculinScorpionBuffle
Messages : 636
Inscrit le : 11 Nov 2007
Age : 22
Localisation : los angeles

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

Revenir en haut Aller en bas

Re: Programmation objet

Message par nabiL le Mer 27 Fév 2008 - 12: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
خير الناس أنفعهم للناس

nabiL
Admin
Admin

Sexe:Masculin
Messages : 1908
Inscrit le : 19 Mar 2007
Localisation : Tunisie

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

Revenir en haut Aller en bas

Re: Programmation objet

Message par nabiL le Mer 27 Fév 2008 - 13: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
خير الناس أنفعهم للناس

nabiL
Admin
Admin

Sexe:Masculin
Messages : 1908
Inscrit le : 19 Mar 2007
Localisation : Tunisie

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

Revenir en haut Aller en bas

Re: Programmation objet

Message par ProgVal le Mer 27 Fév 2008 - 18: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

< 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
Membre fondamental

Sexe:Masculin
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  (997/1000)

Revenir en haut Aller en bas

Re: Programmation objet

Message par nabiL le Mer 27 Fév 2008 - 19: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
خير الناس أنفعهم للناس

nabiL
Admin
Admin

Sexe:Masculin
Messages : 1908
Inscrit le : 19 Mar 2007
Localisation : Tunisie

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

Revenir en haut Aller en bas

Re: Programmation objet

Message par ProgVal le Jeu 28 Fév 2008 - 17:18

Effectivement,
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
Membre fondamental

Sexe:Masculin
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  (997/1000)

Revenir en haut Aller en bas

Re: Programmation objet

Message par nabiL le Jeu 28 Fév 2008 - 17: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
خير الناس أنفعهم للناس

nabiL
Admin
Admin

Sexe:Masculin
Messages : 1908
Inscrit le : 19 Mar 2007
Localisation : Tunisie

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

Revenir en haut Aller en bas

Re: Programmation objet

Message par ProgVal le Jeu 28 Fév 2008 - 17:59

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
Membre fondamental

Sexe:Masculin
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  (997/1000)

Revenir en haut Aller en bas

Re: Programmation objet

Message par methodiX le Jeu 28 Fév 2008 - 20: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)

methodiX
Admin
Admin

Sexe:Masculin
Messages : 811
Inscrit le : 22 Mar 2007
Localisation : marsa - IPEST

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

Revenir en haut Aller en bas

Re: Programmation objet

Message par ProgVal le Ven 29 Fév 2008 - 9: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?

< 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
Membre fondamental

Sexe:Masculin
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  (997/1000)

Revenir en haut Aller en bas

Re: Programmation objet

Message par nabiL le Ven 29 Fév 2008 - 11: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
خير الناس أنفعهم للناس

nabiL
Admin
Admin

Sexe:Masculin
Messages : 1908
Inscrit le : 19 Mar 2007
Localisation : Tunisie

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

Revenir en haut Aller en bas

Re: Programmation objet

Message par ProgVal le Sam 1 Mar 2008 - 14:20

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
Membre fondamental

Sexe:Masculin
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  (997/1000)

Revenir en haut Aller en bas

Re: Programmation objet

Message par methodiX le Dim 2 Mar 2008 - 2: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)

methodiX
Admin
Admin

Sexe:Masculin
Messages : 811
Inscrit le : 22 Mar 2007
Localisation : marsa - IPEST

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 2008 - 12: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
Admin
Admin

Sexe:Masculin
Messages : 976
Inscrit le : 10 Oct 2007
Localisation : Tunisie

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

Revenir en haut Aller en bas

Page 1 sur 2 1, 2  Suivante

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


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