GNU/Linux >> Tutoriels Linux >  >> Linux

Comment :Introduction à la programmation - Programmation orientée objet

Série de tutoriels

Ceci est la partie 5 d'une série en 5 parties pour Introduction à la programmation

  1. Introduction à la programmation :Premiers pas
  2. Introduction à la programmation :votre premier programme
  3. Introduction à la programmation :variables, types et manipulation de données
  4. Introduction à la programmation :contrôle de flux
  5. Introduction à la programmation :programmation orientée objet

Retour pour la dernière leçon

Génial de te revoir! Je suis heureux que vous soyez revenu pour ce dernier article de cette série Introduction à la programmation sur Atlantic.NET. Vous avez beaucoup appris jusqu'à présent, et cet article ne fera pas exception.

Dans cet article, nous allons explorer l'orientation objet, qui est une méthodologie de programmation dans laquelle vous construisez des objets qui représentent les éléments que vous souhaitez modéliser, puis demandez à ces objets d'effectuer diverses tâches.

Vous voulez savoir la meilleure chose? Vous l'avez déjà fait. Maintenant, vous avez juste besoin de comprendre ce que vous avez fait, et vous serez prêt à partir.

.

Objets aléatoires

Tout d'abord, rappelez-vous que dans l'article précédent, je terminais en vous donnant deux lignes de code que je n'ai pas encore expliquées. Voici à nouveau les deux lignes :

Random random = new Random(); // Object orientation stuff
int answer = random.Next(10) + 1; // Give me a random number less than 10 and add one

La première ligne est la plus inconnue pour nous à ce stade. Nous allons commencer avec le nouveau mot-clé, qui est, eh bien, new . Quoi de new fait est d'instancier un objet. L'instanciation signifie créer une instance de quelque chose, et dans ce cas, nous créons une instance d'une classe appelée Random() .

Donc cette première ligne crée un nouvel objet à partir du Random() classe puis l'affecte à une variable de type Random et dont le nom est aléatoire . C'est beaucoup de hasard pour un ordinateur qui n'est pas aléatoire du tout ! Cette répartition peut vous aider si vous trouvez cette explication déroutante.

Tout d'abord, vous avez le type de variable. Jusqu'à présent, nous avons utilisé int et string types, nous introduisons donc ici un nouveau type - ou, en fait, un type de classe - appelé Random .
Deuxièmement, nous avons le nom de la variable. Lorsque vous travaillez avec des variables dans des articles précédents, nous avons utilisé des noms de variables tels que input et valeur . Notez que dans ce cas, nous utilisons un nom de variable random (nous l'avons mis en minuscules pour essayer de vous aider à le distinguer), bien que cela puisse être presque tout ce que vous voulez, comme numéro ou hey_there_human_can_you_get_me_a_cookie_Please_kthxbye .
Troisièmement, et c'est littéralement la nouvelle partie, c'est comment nous attribuons une valeur à la variable. Dans les articles précédents, nous avons défini ceci sur la sortie de Console.ReadLine() méthode ou une valeur fixe telle que 8 ou "Hello world!". Maintenant, nous utilisons une approche légèrement différente car nous créons un nouvel objet avec le new mot-clé.

.

Avant de passer à la ligne suivante, faisons une petite révision.
.

Un examen des classes, des objets, des propriétés et des méthodes

Dans l'orientation objet, les deux concepts les plus importants sont les classes et les objets. Vous avez brièvement appris cela dans le deuxième article de cette série lorsque j'ai expliqué que vous pouvez considérer les classes comme des modèles et les objets comme ce que vous créez à partir de ces modèles, par exemple, un gâteau (objet) à partir d'une recette (classe).

Une classe, étant le modèle des objets, définit ce que seront les objets à travers des propriétés et des méthodes. Lorsque vous créez un objet en utilisant le new mot-clé, vous obtenez un objet unique qui a des propriétés et des méthodes telles que définies par la classe.

Par exemple, vous pouvez créer un nouveau gâteau à partir d'une recette donnée. Ce faisant, vous pouvez dire que vous instanciez la recette et obtenez un objet gâteau. Le gâteau est unique parmi tous les autres gâteaux fabriqués à partir de cette recette, donc les modifications que vous apportez à un gâteau n'affectent pas les autres gâteaux ; mettre du glaçage sur un gâteau ne met pas du glaçage sur tous les gâteaux.

Les propriétés sont les valeurs qui définissent ce qu'est un objet. Cela peut être plus facile si vous considérez une propriété comme une sorte de variable attachée à un objet. Par exemple, pour un objet gâteau, le type de glaçage ou de garniture peut être une propriété.

Les méthodes définissent ce qu'un objet peut faire. Par exemple, une voiture peut conduire. Vous n'avez pas vraiment besoin de savoir comment fonctionne un moteur; vous pouvez simplement dire à la voiture de démarrer, et la voiture s'occupera de ce qu'elle doit faire pour faire tourner le moteur et vous mettre sur la bonne voie. L'une des belles choses à propos de l'orientation objet est que nous ne nous soucions pas vraiment du fonctionnement sous-jacent de la méthode, et nous n'avons pas non plus à le faire. C'est le concept d'abstraction dont nous avons également parlé plus tôt.

Comme nous avons déjà parlé de gâteaux, nous pouvons imaginer des méthodes pour le gâteau telles que AddFilling et WrapInPaper qui ajouterait ou ajusterait la propriété de remplissage ou désignerait un gâteau comme étant enveloppé dans du papier, par exemple.

.

Vous pouvez souvent reconnaître que vous avez affaire à des objets et à des classes en utilisant des points ou des "points". Par exemple, dans la sortie de notre programme, nous utilisons Console.ReadLine() (parlé comme "Console point ReadLine"). La première partie avant le point détermine la classe ou l'objet et la deuxième partie après le point détermine les propriétés ou les méthodes que nous souhaitons invoquer.

Comment faites-vous la différence entre les propriétés et les méthodes ? La plupart du temps, les méthodes auront des parenthèses alors que les propriétés n'en auront pas. Vous pouvez dire, par exemple, que la commande Console.ReadLine() demande la Console classe ou objet pour invoquer le ReadLine() car "ReadLine" est suivi de parenthèses.

Pour les propriétés, vous constaterez que vous interagissez avec elles de la même manière que vous le faites avec des variables normales. Vous pouvez effectuer des opérations mathématiques, attribuer des valeurs, lire des valeurs, etc., comme avec int et string variables. En fait, si vous vouliez changer un peu notre code de jeu, vous pourriez définir les propriétés des couleurs de premier plan et d'arrière-plan de la console comme telles :

Console.BackgroundColor = ConsoleColor.Blue;
Console.ForegroundColor = ConsoleColor.White;

L'ajout de ces instructions entraînera l'écriture du texte en blanc sur fond bleu la prochaine fois que vous afficherez quelque chose dans le programme, comme le montre la figure 1 ci-dessous.

Figure 1 :texte de la console blanc sur bleu

Vous auriez pu vous attendre à ce que toute la fenêtre soit bleue, n'est-ce pas ? Nous n'obtenons que les lignes de sortie bleues car nous n'avons pas dit à la console d'effacer tout fond noir déjà présent. Nous pouvons accomplir ce changement en appelant le Clear() méthode sur la console :

Console.BackgroundColor = ConsoleColor.Blue;
Console.ForegroundColor = ConsoleColor.White;
Console.Clear();

Avec cet ajout, nous obtenons quelque chose dans le sens de la figure 2 ci-dessous.

Figure 2 :Fenêtre bleue de la console

Dans cet exemple, vous utilisez d'abord l'orientation objet pour affecter des valeurs aux propriétés sur la console, puis pour demander à la console de faire quelque chose. Ce modèle est courant dans l'orientation objet.

Il y a encore une chose concernant les méthodes que vous devez apprendre et c'est l'utilisation de paramètres . Heureusement, vous avez déjà utilisé un paramètre lors de l'écriture de texte sur la console à l'aide de WriteLine() méthode.

Les paramètres vous permettent de configurer la façon dont une méthode doit s'exécuter. Par exemple, lorsque vous voulez que la console écrive quelque chose, vous devez lui dire quoi écrire. Pour ce faire, placez un ou plusieurs paramètres entre parenthèses après le nom de la méthode.

Console.WriteLine(“this is a parameter”);

Jusqu'à présent, nous n'avons utilisé que du texte fixe pour générer quelque chose, mais nous pouvons également passer des variables, des propriétés ou même des objets entiers dans des méthodes. Par exemple, le WriteLine() méthode, peut recevoir un int variable à transmettre à la console affiche la valeur de cette variable.

int i = 99;
Console.WriteLine(i);

Ce que vous pouvez faire exactement avec les différentes classes et objets varie considérablement. Vous devez vous référer à la documentation de l'API pour plus de détails sur les capacités des différents objets. Certains outils de développement, tels que Visual Studio, peuvent également vous aider énormément en suggérant des valeurs en fonction de ce que veulent les méthodes, ou en suggérant des propriétés et des méthodes disponibles lorsque vous commencez à taper un nom d'objet ou de classe.

Dans Visual Studio, par exemple, vous pouvez voir toutes les propriétés de la console en tapant Console et "point". Attendez une fraction de seconde, et vous devriez voir une liste de propriétés et de méthodes et même une documentation concernant ce que font les différentes propriétés et méthodes, comme illustré à la figure 3 ci-dessous.

Figure 3 :Invite Visual Studio Intellisense

Dans Visual Studio, cette fonctionnalité s'appelle IntelliSense, et si vous faites votre développement dans Visual Studio, ce sera l'une des fonctionnalités les plus utiles que vous puissiez utiliser. D'autres outils de développement offrent également des fonctionnalités similaires.

Enfin, il existe un type spécial de méthode dans l'orientation objet appelée constructeur . Un constructeur est une méthode appelée lorsque vous créez un objet avec le new mot-clé. Cette méthode vous permet d'effectuer des tâches telles que l'initialisation des valeurs de l'objet et est toujours la première méthode appelée dans la durée de vie d'un objet.

.

Retour à notre jeu de devinettes

Lorsque nous écrivons Random random = new Random(); le Random() part est le constructeur. Comme d'autres méthodes, elle peut accepter des paramètres, que la méthode peut ensuite utiliser pour initialiser les propriétés de l'objet.

Nous pouvons maintenant le ramener à la deuxième ligne que nous avons ajoutée pour créer l'entier aléatoire pour notre jeu.

int answer = random.Next(10) + 1;

Vous avez peut-être remarqué que lorsque vous avez commencé à taper le texte (sauf si vous l'avez simplement copié, ce qui est bien aussi; jetez un œil à la figure 4), IntelliSense de Visual Studio est apparu et vous a dit ce que le Next() méthode le fait, comme indiqué ci-dessous.

Figure 4. Random.Next()

Cet indice vous indique que le Random.Next() la méthode nécessite un paramètre de type int avec une valeur maximale de "maxValue". Notez que le nom indiqué ici n'est pas un type mais plutôt un descripteur - vous n'avez pas besoin d'appeler vos valeurs entières "maxValue".

Ensuite, nous apprenons que lorsque nous appelons cette méthode avec un int paramètre, la méthode nous renverra un entier aléatoire non négatif. Dans notre jeu, nous attribuons cela dans un nom de variable de réponse afin que nous puissions nous y référer plus tard.

Cependant, la documentation indique que la valeur renvoyée est inférieure à le maximum. Ainsi, lorsque nous passons 10, nous obtenons une valeur inférieure à cela, donc elle ne peut aller que jusqu'à 9. De plus, le nombre renvoyé par Next() est non négatif, ce qui signifie qu'il peut être 0, et nous avons besoin d'un nombre compris entre 1 et 10 inclus.

Ce que nous obtenons, en d'autres termes, lorsque nous appelons random.Next(10) est un nombre compris entre 0 et 9. Ajouter 1 à ce nombre signifie qu'il deviendra un nombre compris entre 1 et 10 avant que nous l'attribuions à la réponse .

Si nous revenons maintenant sur ces deux lignes, cela devrait avoir plus de sens :

Random random = new Random();  
int answer = random.Next(10) + 1; 

Tout d'abord, nous créons un nouvel objet basé sur le Random classe, que nous appelons aléatoire . Ensuite, nous demandons que aléatoire invoque son Next() méthode et transmettez la valeur 10 dans cette méthode. Ensuite, lorsque cette méthode est exécutée, nous ajoutons 1 au résultat, puis stockons la valeur dans un int appelé réponse .

C'est ça! Vous avez terminé! Désormais, chaque fois que vous exécuterez ce programme, votre utilisateur devra deviner une valeur aléatoire que vous avez demandé à l'ordinateur de générer.

.

Découvrez jusqu'où vous êtes parvenu

Vous avez construit et compris, espérons-le, tous les aspects d'un simple jeu sur console. Tout au long de cette série, vous avez appris de nombreux aspects de la programmation, de la façon dont les programmes s'exécutent, comment créer des applications, comment vous écrivez du code, quel code écrire, variables, boucles, branches, objets, classes.

Ce que vous devez savoir, cependant, c'est que ce que vous avez appris maintenant n'est que la base de ce que vous devez savoir en tant que programmeur. Que vous souhaitiez vous lancer en tant que développeur ou que vous vouliez simplement en savoir suffisamment pour impressionner vos amis, les leçons de ces articles devraient être un bon point de départ.

J'espère que vous avez apprécié cette série et si vous souhaitez en savoir plus. Assurez-vous également de consulter les autres articles de la communauté de l'Atlantique. Où que cette série vous emmène, profitez de votre programmation ! Assurez-vous de consulter les solutions d'hébergement VPS leaders du marché d'Atlantic.Net.

Série de tutoriels

Ceci est la partie 5 d'une série de 5 parties pour Introduction à la programmation

  1. Introduction à la programmation :Premiers pas
  2. Introduction à la programmation :votre premier programme
  3. Introduction à la programmation :variables, types et manipulation de données
  4. Introduction à la programmation :contrôle de flux
  5. Introduction à la programmation :programmation orientée objet

Linux
  1. Langage de programmation C - Introduction

  2. Comment commencer à apprendre un langage de programmation

  3. Comment générer un mot de passe aléatoire sous Linux en utilisant /dev/random

  4. Comment profiter de l'objet VDSO avec son propre langage de programmation ?

  5. Comment fonctionnent les numéros SO (objet partagé) ?

Comment :Introduction à la programmation - Variables, types et manipulation de données

Tuto :Programmation Orientée Objet – Constructeurs et Héritage

Comment installer le langage de programmation Go sur Ubuntu 20.04

Comment installer le langage de programmation Rust sur AlmaLinux 8

Comment installer le langage de programmation Rust sur Linux

Comment installer GoLang (langage de programmation Go) sous Linux