Aller au menu - Aller au contenu

Icône Les concepts de la POO

Avatar
Mise à jour : 13/12/2010
Difficulté : Facile Facile Creative Commons BY-NC-SA
23 410 visites depuis 7 jours, dont 228 sur ce chapitre classé 14/786
Eh bien mes chers amis zéros, nous allons passer à une partie qui va changer votre vie changer votre conception de la programmation.

Vous pensiez avoir déjà vu pas mal de choses en programmation, eh bien c'est loin d'être fini.

Vous vous souvenez que nous utilisons des objets, classes et autres méchantes choses qui ont hanté vos nuits.

Nous allons approfondir encore plus le concept d'objets, et nous allons apprendre a concevoir vos propres objets, ca vous dirait de construire votre propre voiture ?

Bref, je rigole mais attaquons tout de suite.
Sommaire du chapitre :
Icône du chapitre
Chapitre précédent Sommaire Chapitre suivant

Pourquoi changer ?

Alors, comme beaucoup je suppose qu'arrivés à cette partie vous vous demandez pourquoi vous changeriez de méthode de programmation.

C'est vrai après tout, celle que nous utilisions fonctionnait très bien jusqu'à maintenant et pourquoi ne pas continuer ?

Eh bien d'un point de vue, la méthodologie de programmation que nous avons vus à présent est très bonne, nous avons même vus quels genre de programmes nous étions capables de réaliser en suivant ce concept.

Mais d'un autre côté ... Il y a plein de choses qui sont impossible ou très difficilement réalisables en programmant de cette façon.

Vous imaginez créer un jeu comme ça ?

Même le plus basique des jeux de rôles vous prenait des heures de travail pour un résultat que la POO vous apporterait sur un plateau.

Bref, je m'égare, je vais essayer de vous expliquer plus en détail ce qu'est le fabuleux monde de l'Orienté Objet.

Mesdames, Messieurs, Sa Majesté POO.



Je rappelle pour ceux qui ont tendance à sauter des chapitres entiers : POO = Programmation Orientée Objet.

Jusqu'à maintenant nous avons fait de la programmation Procédurale, pour faire simple, ce principe se base sur les procédures et fonctions, vous avez remarqués que pendant tous nos TPs, chaque "action" à effectuer était souvent décomposée en un sous-ensemble de fonctions et procédures (sub). C'est donc cela la programmation procédurale.

Image utilisateur


Comme vous le voyez sur le schéma, ces fonction s'imbriquent les unes aux autres. Pour le moment, aucun problème. Lorsque nous attaquerons de gros projet, cette structure va devenir un véritable pêle-mêle.

C'est pourquoi dieu Alan Kay se décida à révolutionner la façon de programmer en élaborant la Programmation Orientée Objet.

Comme son nom l'indique, nous allons créer des objets. Mais tout d'abord qu'est-ce qu'un objet programmatiquement parlant ?

Nous nouveaux amis : les objets



Dans la vie de tous les jours, vous voyez ce qu'est qu'un objet ? Eh bien en programmation le concept reste le même.

Je m'explique :

Nous allons créer des objets qui vont nous permettre de rassembler des groupes de procédures ou fonctions appartenant à la même famille. En gros, si nous voulons contrôler une voiture, nous pouvons, avec nos connaissances actuelles, créer des dizaines de fonctions pour faire avancer, reculer, tourner, freiner notre voiture. Mais si nous en voulons une seconde nous allons être obligés de recommencer.

Avec le concept d'objet, nous programmions des fonctions qui seront liées à l'objet "Voiture" et après peu importe que l'on décide d'en faire 1 ou 100, il n'y aura pas à recommencer.

Image utilisateur


Ici, sur le principe d'un gâteau. Nous allons coder le "moule" du gâteau, une fois ce moule bien bâtit, il sera capable de nous créer des dizaines de gâteaux.

Vous avez utilisés pas mal d'objet jusqu'à maintenant, exemple : la class File.

Le moule de "File" nous a permis de créer des dizaines de "File" et de les manipuler séparément.

Retournons à notre voiture.

Notre moule, en Visual Basic se nomme la Classe. La classe contient un Contructeur (ce qui se produit lorsque l'on crée notre objet, en l'occurence notre voiture) et possibilité de mettre un destructeur (je pense que vous avez compris son utilité).

Ces méthodes seront présentes dans le fichier de la Class. On peut également ajouter beaucoup d'autres fonctions ou sub à notre classe. Une fonction pour faire avancer notre voiture, une autre pour la faire reculer, nous pouvons également déclarer des variables qui seront utilisables seulement par cette classe.

Les accessibilités

Ce qu'il va bien falloir comprendre et essayer d'appréhender c'est ce qui se passe en "interne" de la classe et ce qui va se passer à l'extérieur.

Image utilisateur
(ceci est censé être un iceberg ...)


Comme vous pouvez le constater, dans la classe il y a une partie considérée comme privée, qui ne sera accessible que par elle-même, des fonctions ou des variables internes, pour faire avancer la voiture, vous imaginez qu'il va falloir un énorme travail en interne pour que au final on aie juste à appuyer sur une touche pour qu'elle bouge. C'est le travail du privé cela.
Vient ensuite le public, c'est ce qui sera visible par le reste du programme. Sur notre voiture la fonction "avancer" sera publique, on pourra l'appeler de l'extérieur sous ma forme MaVoiture.Avancer (où MaVoiture est la voiture crée avec le moule auparavant).

Mais pourquoi on ne met pas tout en public ?


Eh bien, en faisant ça, c'est le principe fondamental de l'orienté objet auquel vous vous attaquez ... L'encapsulation.

L'encapsulation est le terme employé pour dire "ce que la classe fait en interne c'est du domaine du privé".

Pour la voiture, le moteur, la boite de vitesse, etc ... Tout ce qui fait fonctionner en "interne" cette petite automobile ne doit pas être accessible à l'utilisateur, sinon il n'y a plus aucun intérêt. L'utilisateur doit seulement avoir accès aux pédales et au levier de vitesses.

Les fonctions se passant en interne sont les attributs, celles visibles depuis l'extérieur sont les méthodes.

Il existe d'autre mots "préfixe" que nous pourrons employer avant nos déclaration. Il y a Shared, Protected, ... Mais pour le moment intéressons nous uniquement à Private et Public.

Les fichiers de classe

Donc, théoriquement parlant je comprends tout à fait que c'est très dur à appréhender cette notion d'objet, je ne vais pas plus vous brusquer pour le moment.

Je vais juste vous expliquer comment nous allons créer nos objets.

Personnellement je crée un nouveau fichier par objet, mais si vos objets sont petits, vous pouvez les rassembler en un.

Une déclaration de classe (notre moule) s'effectue avec :

Code : VB.NET
1
2
3
Public Class MaClasse

End Class


Vous voyez que même sur la déclaration de la classe on peut spécifier publique ou privée. Notre classe doit créer des objets qui seront accessibles depuis tout le programme, laissons en public.

Je vous expliquerai plus tard dans quels cas de figure le Private sera de mise pour déclarer une classe.

Notre classe va contenir des variables et des fonctions qu'elle poura utiliser. Des membres et des attributs en langage technique. Pour les créer ce sera comme ce que nous avons vus jusqu'à présent. Un préfixe d'accessibilité (public, private ...), un dim pour les variables, sub pour les fonctions ne renvoyant rien et function pour les fonctions.

Le constructeur



Je vous rappelle avant que vous n'oubliez ce qu'est que le contructeur.

C'est la méthode qui va être appellée à l'instanciation de l'objet, au moment où nous ferons "= New MaClasse" ce sera des arguments que l'on poura spécifier de cette manière : "= New MaClasse(ArgumentConstructeur1, ArgumentConstructeur2)".
Comme une fonction qui demande des arguments, le constructeur réagira pareil. Il récupèrera les informations passées en argument et en fera ce qu'il veut, les attribuer à des membres privés par exemple.

Je vous expliquerai dans la partie suivant comment le coder et l'utiliser.

Le destructeur



Je vais vous parler brièvement du destructeur.

Le destructeur est particulier, il est surtout utilisé pour libérer les ressources mémoires allouées à l'objet juste avant sa destruction.
Lorsque nous utiliserons les bases de données par exemple, il faudra se servir du destructeur pour fermer et libérer la connection si elle a été établie pour cette classe.

Bref, sinon il ne sera pas utile : les variables qui sont crées pour la classe sont automatiquement libérées de la mémoire quand cette dernière "meurt".

L'objet sera détruit si la valeur Nothing lui est affecté ou si il arrive à la fin de sa portée (fin d'une fonction dans laquelle il a été crée) par exemple, comme pour les variables normales.
Vous avez là les prérequis théorique pour attaquer les classes et les objets.

Dans le chapitre suivant nous allons tout de suite commencer à créer notre classe, en tirer nos objets, les manipuler, faire de la surcharge, de l'héritage, de l'écoute d'évènements, de l'attribution de propriété, de ... :pirate:

Calmons nous, la POO est fabuleuse mais on va y aller petit à petit, ne vous inquiétez pas, tout ces mots font peur sur le papier mais une fois les concepts aquis ca ira tout seul.

Courage !
Chapitre précédent Sommaire Chapitre suivant

Partager

1 commentaire pour "Les concepts de la POO"
Note moyenne : 3.60 / 4 (543 votes)
Pseudo Commentaire
Hors ligne clown triste # Posté le 01/03/2011 à 11:41:06
Avatar
Groupe : Bannis

Tu ne sais pas comment introduire la notion (très floue au demeurant) d'objets, alors tu la vends comme une méthode magique pour la programmation. Très futé.

“ Don't talk like one of them. You're not! Even if you'd like to be. ”
 

Voir tous les commentaires