La programmation orientée objet création d’une classe et de ses membres 

Passer au niveau supérieur

La programmation orientée objet dans les chapitres précédents, la plupart des éléments que vous avez utilisés sont des objets ou des classes. Par exemple, vous avez employé les classes Debug et Trace et manipulé des exceptions, qui sont des objets de la classe Exception. Reportez-vous à ce sujet au chapitre Rendre un programme robuste.  Passer au niveau supérieur Une question demeure : qu’est-ce qu’un objet ? À vrai dire, la réelle question à se poser est : qu’est ce qu’une classe ? Une classe est un modèle d’objet. Cette réponse n’est pas fausse. Mais si l’on utilise les classes pour définir les objets et que, pour définir les objets, on utilise les classes, on tourne en rond. En réalité, une classe est un concept, c’est-à-dire l’ensemble des éléments qui vont définir quelque chose de concret. Prenons un exemple, utilisé dans le monde de l’informatique pour décrire ce que sont les objets et les classes : un véhicule. Comment décrire un véhicule ? Par son nombre de roues, son moteur, sa marque, son modèle, son année de mise en circulation, sa puissance, le type mine. Les possibilités sont nombreuses. Une classe est le regroupement de tous les éléments qui décrivent une voiture. C’est un peu comme le tableau des caractéristiques techniques, à ceci près que celui-ci serait vide. Il n’y aurait que les lignes avec les différents critères. L’objet est le véhicule concret. Le vôtre, celui du voisin, celui garé devant votre portail et qui vous bouche la sortie. Ils ont chacun leurs caractéristiques. Si l’on reprend l’analogie avec le tableau des caractéristiques techniques d’un véhicule, un objet correspondrait à une colonne dans laquelle figureraient les valeurs des critères (les éléments de la classe) qui décrivent ce véhicule. En programmation, les objets peuvent être des exceptions, des connexions à des bases de données, des boutons, des formulaires, etc. Il s’agit de structures de programmation contenant les données et les traitements nécessaires à leur fonctionnement, autrement appelés « membres ».

Création d’une classe et de ses membres 

Les membres d’un objet représentent les données et les fonctionnalités inhérentes à cet objet. Il peut y avoir des attributs, des méthodes, des propriétés et des événements. Les attributs et les propriétés représentent le côté « données » de l’objet, alors que les méthodes et les événements représentent le coté « fonctionnalités ». Voyons comment créer une classe. 1 Tout d’abord, il faut indiquer que l’on va créer une classe : Public Class Voiture ’ Tout ce qui ce sera dans cette partie concernera ✂ la classe Voiture End Class Cela délimite dans le programme l’endroit où sera décrite la classe Voiture. 2 Ensuite, il faut ajouter quelques attributs qui permettent de la définir. Pour l’instant, le principe utilisé rappelle un peu celui des enregistrements. Mais le concept d’objet va au-delà, comme vous le verrez au fur et à mesure. Public Class Voiture ’ Sa marque Private marque As String ’ Son modèle Private modele As String ’ Son année de mise en circulation Private anneeCircu As Integer ’ Sa puissance, en chevaux Private puissance As Integer ’ Le niveau d’essence, en litres Private essence As Integer End Class 3 Enfin, il faut ajouter quelques méthodes pour décrire les fonctionnalités. Les méthodes sont des fonctions appliquées à une classe. Elles peuvent directement utiliser les attributs de la classe pour les traitements. Cependant, pour des raisons de propreté du code source, utilisez plutôt Me. Me est un mot-clé qui désigne l’objet en cours. Il permet d’accéder à ses attributs et aux méthodes. De plus, si le paramètre de la méthode porte le même nom que l’un des attributs de la classe (ce qui est possible, mais pas recommandé), Me permet de faire la distinction. Public Class Voiture ’ Sa marque Private marque As String ’ Son modèle Private modele As String ’ Son année de mise en circulation Private anneeCircu As Integer ’ Sa puissance, en chevaux Private puissance As Integer ’ Le niveau d’essence, en litres Private essence As Integer ’ Méthode pour faire le plein ’ Exemple décrivant l’importance de Me 166 LE GUIDE COMPLET Chapitre 9 Passer au niveau supérieur ’ Évitez les noms de variable identiques Public Sub faireLePlein(ByVal essence As Integer) Me.essence = Me.essence + essence End Sub ’ Méthode pour tuner le moteur Public Sub gonflerMoteur(ByVal cvGagnes As Integer) Me.puissance = Me.puissance + cvGagnes End Sub End Class Remarquez la présence des mots-clés Private et Public devant les attributs et les méthodes. Ils définissent le degré d’encapsulation du membre.

Encapsulation

L’encapsulation est l’un des mécanismes de la programmation orientée objet. Ce principe permet de séparer dans le programme l’interface et l’implémentation. Par « interface », on entend ce qui est visible par le monde extérieur. L’objet sera amené à être en relation avec d’autres objets. Par exemple, un véhicule va être en relation avec un conducteur ou avec un autre véhicule, avec une contravention. De cette manière, on garantit plus ou moins que, tant que cette interface n’est pas modifiée, les interactions avec l’extérieur restent valables. L’implémentation correspond à ce qu’il se passe à l’intérieur, c’est-à-dire le fonctionnement interne de l’objet. Celui-ci n’a pas besoin d’être connu de l’extérieur pour permettre à l’objet de bien fonctionner. Plus que cela, vous n’avez pas forcément envie que le reste du monde puisse accéder à vos secrets de fabrication. Cela est un peu imagé, mais permet d’expliquer les concepts d’interface et d’implémentation. En ce qui concerne la voiture, l’interface serait le fait qu’elle roule. L’implémentation serait le fonctionnement du moteur à l’intérieur. Pour faire rouler la voiture, on n’a pas besoin de savoir comment cela se passe en interne. De plus, les constructeurs n’ont pas intérêt à divulguer les secrets de construction de leurs moteurs. Pour le programme informatique, il en est de même. Il y a plusieurs degrés d’encapsulation, appelés « modificateurs d’accès » : j Privé : traduit par le mot-clé Private, ce modificateur empêche tout élément qui ne fait pas partie de la classe en cours d’accéder au membre. D’un point de vue de la sécurité, il est recommandé de mettre tous les attributs en privé pour éviter toute modification intempestive. j Public : traduit par le mot-clé Public, ce modificateur autorise l’accès au membre de n’importe où et par n’importe qui. En termes de sécurité, il ne convient pas aux attributs, mais pour les méthodes, c’est généralement le modificateur d’accès ad hoc. j Protégé : traduit par le mot-clé Protected, ce modificateur autorise les classes qui dérivent de la classe en cours d’accéder au membre. Cela intervient lors de l’héritage, qui est un autre mécanisme important de la programmation objet (nous y reviendrons plus loin). j Interne : traduit par le mot-clé Friend, ce modificateur limite l’accès au membre exclusivement aux types du même assemblage. L’assemblage correspond en fait au programme. Son utilisation est subtile et n’entre pas le cadre de cet ouvrage. Mais sachez qu’il existe. j Interne protégé : cumule les possibilités d’accès de Friend et de Protected. Le membre est accessible soit aux types de l’assemblage, soit aux classes qui héritent de la classe en cours.

Formation et coursTélécharger le document complet

Télécharger aussi :

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *