Maintenant, la meilleure façon d'apprendre est de voir le code en action, donc assez de théorie, codons en fait notre
propre classe.
Je vais tout supprimer et recommencer à zéro.
Et disons que nous travaillons pour une société de jeux et que cette société de jeux a tout ce jeu
de sorcier qu'elle veut créer, presque comme Harry Potter.
Maintenant, comment pouvons-nous y penser et la programmation orientée objet ?
Eh bien, la première chose dont nous aurons besoin, c'est que les joueurs écrivent.
Chaque joueur a un personnage qu'il doit jouer.
Créons donc une classe ici et appelons-la player.
Encore une fois, notez la convention de nommage car il s'agit d'une classe.
Et.
Une autre règle est que généralement vous vouliez être au singulier, pas au pluriel, donc vous ne pouvez pas dire les personnages
des joueurs parce que je veux dire, c'est un plan de ce plan.
Nous allons créer de nombreux personnages, mais ce seront des objets.
Donc personnage joueur, célibataire au singulier.
Maintenant, ici, je vais faire quelques choses et je vais vous avertir, cela va sembler déroutant au
début.
Mais supportez-moi.
Je vais l'expliquer.
Nous allons définir un trait de soulignement, trait de soulignement dedans, trait de soulignement, trait de soulignement.
Maintenant, ici, nous allons dire soi.
Et puis donnez-lui un nom, le nom du personnage d'ici, on va refaire Callon.
Et dites simplement le nom de Self Doc.
Égal au nom.
Oh, mon garçon, qu'est-ce qui vient de se passer ici ?
Encore une fois, je vais attendre d'expliquer ce que cela fait et écrire quelques lignes de code supplémentaires pour que cela ait un
peu plus de sens.
Je vais écrire une autre méthode ici et je vais définir, disons, une méthode d'exécution que chaque
joueur peut utiliser ici.
Je vais encore une fois avoir ce mot étrange et puis simplement à l'intérieur d'ici, dire imprimer.
Ron.
D'accord, donc je viens de créer cette classe, c'est toujours un peu déroutant, nous ne savons pas vraiment de
quoi il s'agit, ce qu'est le soi et ce tout nouveau look.
Mais ignorons cela une seconde et disons simplement.
Joueur.
L'un va égaler le personnage du joueur et instancier ce joueur.
Pour que nous puissions imprimer le lecteur et voir ce qui se passe avec ce lecteur.
Si je clique, cours.
Très bien, j'obtiens une erreur, c'est une faute de frappe, dit INET manquant un nom d'argument positionnel requis.
Très bien, faisons une pause ici et voyons ce qui se passe ici.
Vous voyez cet inet.
La méthode est une méthode spéciale.
Vous voyez les deux soulignements ici.
C'est ce qu'on appelle une méthode Dundar ou une méthode magique, et nous allons avoir une vidéo spécifiquement à ce sujet.
Mais lorsque nous construisons une classe, vous voyez généralement cela en haut.
Et c'est ce qu'on appelle souvent une méthode constructeur ou une méthode init.
Et cela est automatiquement froid à chaque fois que nous instancions.
Rappelez-vous, instancier signifie que nous appelons la classe pour créer un objet.
Donc, quand je fais cela, il va automatiquement exécuter tout ce qui se trouve dans ce bloc de code.
Donc, quand je lance ceci, vous voyez que je reçois l'air en ligne à 9h00 ici à la ligne neuf et
quand j'ai essayé d'instancier le personnage du joueur.
Il s'exécute dedans et ensuite il essaie de faire un nom autodidacte égal à nom, mais le problème est que
je ne le donne pas à un nom d'argument, et c'est parce que lorsque nous l'appelons, nous acceptons tout ce qui est
après soi comme paramètre.
Cela signifie que nous devons lui donner un nom pour ce personnage, alors disons que le nom est Cindy, si je clique sur exécuter ici.
Très bien.
On dirait que j'ai un personnage joueur, et en fait, cela me montre même que c'est un objet
à cet emplacement de mémoire.
Donc, sur nos ordinateurs, c'est là que se trouve le joueur, le personnage, le joueur un.
Maintenant, très cool, mais qu'est-ce que ce mot-clé self et à quoi sert ce code en ligne ?
C'est une façon pour nous de définir ce que self self se réfère au personnage joueur, c'est dire, hé, cela va faire référence à ce
personnage joueur que nous allons créer.
Joueur un, et je veux que le nom d'auto-tromperie soit égal quel que soit le nom du paramètre.
Donc, si je joue le nom de sa fille ici et que je clique sur exécuter.
Je reçois Cindy et pourquoi Cindy?
Eh bien, parce que je lui ai donné le personnage de joueur de périmètre et quand je l'ai instancié, j'ai passé le paramètre
de nom.
Le paramètre par défaut est self quand je le fais.
Et dans les classes, vous voyez ici que la valeur par défaut, toujours le premier paramètre lorsque nous définissons une
méthode est self.
Et maintenant je donne mon nom à un autodidacte, hé, et si j'enlève ça ici et que je clique sur exécuter ?
Vous voyez qu'il est dit que l'objet n'a pas de nom d'attribut.
Parce que pour que je puisse dire, hé, je veux que le joueur ait un nom, je dois dire autodidacte parce que
self fait référence au joueur un.
Donc, si vous vous souvenez quand nous avions une liste, nous devions faire DOT et ensuite nous dirions, ajoutez ce que quelqu'un a
écrit ce code d'ajout.
Et dans le code d'ajout, il va dire self dot.
Disons que ajouter à la liste et self fait référence à tout ce qui se trouve à gauche du point.
Donc, de cette façon, cela nous permet d'avoir une référence à quelque chose qui n'a pas encore été créé dans ce cas.
PLAYER one Et faites-leur savoir que, hé, quand il est créé, quand nous instancions, alors je veux
que vous vous assuriez que Player one a cet attribut de nom afin que si je crée un autre joueur et joueur,
Tom va être le joueur à.
Si j'imprime le nom du joueur sur Don et que je clique sur Exécuter.
J'ai deux joueurs différents avec deux noms différents.
J'ai pu utiliser le même morceau de code mais j'ai des valeurs différentes parce que le self, chaque fois que j'instancie
cela, fait référence au premier joueur un, puis au premier deuxième joueur à maintenant self comme l'une de ces choses.
Cela devient vraiment, vraiment difficile à comprendre.
Et vous devrez peut-être regarder cette vidéo plusieurs fois.
Mais la clé ici devrait être évidente pour vous.
C'est-à-dire que je ne suis capable d'écrire du code qu'une seule fois.
Souvenez-vous de notre tirage principal.
Je ne me répète pas et je suis capable de le rendre dynamique en disant que cette donnée qu'on va créer pour
l'objet va être dynamique et ça va changer en fonction de ce qu'on lui donne.
Pour que je puisse créer différents joueurs avec différents attributs.
Mais utilisez toujours le même code.
Maintenant, je peux avoir plusieurs choses ici, je peux avoir H, par exemple, et encore
une fois, je peux dire que l'âge autodidacte est égal à l'âge et puis Cindy devra réussir, disons 44 et Thomas, 21.
Alors qu'ici encore, si je fais H.
Ils auront des attributs différents.
N'oubliez donc pas qu'il s'agit d'attributs ou de propriétés que possèdent ces objets et vous pouvez y accéder en notant
les points, puis en accédant à la propriété elle-même.
Vous voyez que je n'ai pas de parenthèses ici car ce n'est pas une méthode.
Ce n'est pas agir.
C'est simplement dire, hé, je veux accéder à cet attribut.
Si je fais un point ici, mon éditeur me le dira et nous aurons le symbole pour, hé, vous avez accès à
l'attribut, à l'âge et au nom.
Et en fait, j'ai également accès à l'exécution de la méthode afin que si je clique, exécutez.
Eh bien, rappelez-vous, une exécution est une méthode, donc j'obtiens cette méthode liée, mais elle n'imprime rien, elle
n'exécute pas l'action.
Nous devons donc encore une fois ajouter les parenthèses, frapper, courir.
Et regarde ça, je suis capable de courir, alors je n'en reçois aucun, puis vingt et un, pourquoi obtenons-nous ça ?
Pas parce que rappelez-vous qu'il s'agit d'une fonction qui ne renvoie rien quand une fonction ne renvoie
rien.
Qu'obtenons-nous?
Nous ne comprenons pas.
Alors peut-être que je peux juste dire retour terminé si je clique, cours.
Voilà.
Nous avons dirigé Don One.
Maintenant, une dernière chose avant de terminer cette vidéo, la chose intéressante ici est que si je fais le joueur un puis le joueur
deux et que j'imprime ceci et que je clique sur exécuter.
Vous verrez que j'obtiens le personnage du joueur.
Mais l'objet, chacun de ces objets, le joueur un et le joueur deux sont un emplacement de mémoire différent.
Je peux donc utiliser un seul morceau de code, un seul plan pour créer plusieurs joueurs, mais ces joueurs ne sont pas
les mêmes.
Ils sont créés à partir du même schéma, mais ils vivent à des endroits différents dans la mémoire.
Et cela a du sens, non?
Nous ne voulons pas que Tom et Cindy soient le même joueur.
Ce sont deux joueurs différents.
Donc, de cette façon, nous sommes en mesure de garder les choses en sécurité.
Et tout ce que j'ajoute au joueur deux, par exemple, disons que le joueur deux peut maintenant attaquer.
Et l'attaque sera juste une propriété qui sera de 50 maintenant si je n'attaque pas ici, vous voyez que ce joueur l'a
aussi.
Attaque, mais si je joue une attaque Wyandotte.
J'en reçois un autre.
L'objet n'a pas d'attaque d'attribut.
J'espère que vous commencez à voir le pouvoir des classes, même si cela peut être difficile à
comprendre au début, le pouvoir devient évident lorsque nous sommes capables de créer ce plan que nous pouvons maintenant
utiliser encore et encore pour créer nos propres objets .
Explorons plus dans la prochaine vidéo.