Ahora, la mejor manera de aprender es realmente ver el código en acción, así que basta de teoría, codifiquemos nuestra
propia clase.
Voy a borrar todo y empezar de cero.
Y digamos que estamos trabajando para una empresa de juegos y esta empresa de juegos tiene todo este juego
de magos que quieren crear, casi como Harry Potter.
Ahora bien, ¿cómo podemos pensar en ello y en la programación orientada a objetos?
Bueno, lo primero que vamos a necesitar es que los jugadores escriban.
Cada jugador tiene un personaje que necesita para jugar.
Así que creemos una clase aquí y llamémosla player.
Nuevamente, observe la convención de nomenclatura porque es una clase.
Y.
Otra regla es que normalmente querías ser singular, no plural, por lo que no puedes decir personajes de
jugador porque quiero decir, es un plano de este plano.
Vamos a crear muchos personajes, pero esos serán objetos.
Entonces personaje jugador, soltero en singular.
Ahora, aquí, voy a hacer algunas cosas y les voy a advertir, esto se verá confuso al
principio.
Pero tengan paciencia conmigo.
Yo te lo explicaré.
Vamos a definir un subrayado, un subrayado en él, un subrayado, un subrayado.
Ahora aquí vamos a decir yo.
Y luego dale un nombre, el nombre del personaje de aquí, vamos a hacer Callon una vez más.
Y simplemente di el nombre de Self Doc.
Igual al nombre.
Oh, chico, ¿qué acaba de pasar aquí?
Una vez más, voy a postergar la explicación de lo que hace esto y escribir algunas líneas más de código para que tenga un
poco más de sentido.
Voy a escribir otro método aquí y voy a definir, digamos, un método de ejecución en el que
cada jugador puede ejecutar aquí.
Voy a tener una vez más esta extraña palabra del yo y luego simplemente dentro de aquí, diré imprimir.
Ron.
Muy bien, acabo de crear esta clase, todavía es un poco confuso, realmente no sabemos qué
es esto, qué es el yo y este aspecto completamente nuevo.
Pero ignoremos eso por un segundo y simplemente digamos.
Jugador.
Uno va a igualar el personaje del jugador y crear una instancia de ese jugador.
Para que podamos imprimir el reproductor y ver qué pasa con este reproductor.
Si hago clic, corre.
Muy bien, aparece un error, es un error tipográfico, dice INET falta un nombre de argumento posicional requerido.
Muy bien, tomemos un descanso aquí y veamos qué está sucediendo aquí.
Ves este inet.
El método es un método especial.
Ves los dos subrayados aquí.
Esto se llama método Dundar o método mágico, y vamos a tener un video específicamente sobre esto.
Pero cuando estamos creando una clase, normalmente se ve esto en la parte superior.
Y esto es lo que a menudo se llama método constructor o método init.
Y esto se enfría automáticamente cada vez que creamos una instancia.
Recuerde, instanciar significa que estamos llamando a la clase para crear un objeto.
Entonces, cuando hago esto, se ejecutará automáticamente lo que esté en este bloque de código.
Entonces, cuando ejecuto esto, ves que obtengo el aire en línea a las 9:00 aquí mismo en la línea nueve y cuando
intenté crear una instancia del personaje del jugador.
Se ejecuta en él y luego intenta hacer un nombre autodidacta igual a nombre, pero el problema es que no
le doy un nombre a un argumento, y eso se debe a que cuando lo llamamos, aceptamos lo que sea después
de self. como parámetro.
Es decir, tenemos que darle un nombre de este personaje, así que digamos que el nombre es Cindy, si hago clic en ejecutar aquí.
Está bien.
Parece que tengo un personaje de jugador y, de hecho, incluso me muestra que es un objeto
en esta ubicación de memoria.
Entonces, en nuestras computadoras, aquí es donde se encuentra el jugador, personaje, jugador uno.
Bien, muy bueno, pero ¿qué es esta palabra clave self y para qué sirve este código en línea?
Esta es una forma de definir lo que self self se refiere al personaje del jugador, es decir, oye, esto se va a referir a este
personaje de jugador que vamos a crear.
Jugador uno, y quiero que el nombre del autoengaño sea igual al nombre del parámetro.
Así que si juego el nombre de su hija aquí y hago clic en ejecutar.
Entiendo Cindy y ¿por qué es Cindy?
Bueno, porque le di el personaje de jugador de perímetro y cuando lo instanciaré, pasé el parámetro de
nombre.
El parámetro predeterminado es self cuando lo hago.
Y en las clases, ves aquí que el primer parámetro predeterminado, siempre que estamos definiendo un método,
es self.
Y ahora le doy mi nombre al autodidacta, oye, ¿y si quito esto de aquí y hago clic en ejecutar?
Verá que dice Objeto no tiene nombre de atributo.
Porque para poder decir, oye, quiero que el jugador tenga un nombre, necesito decir autodidacta porque yo
se refiere al jugador uno.
Entonces, si recuerdas cuando teníamos una lista, teníamos que hacer DOT y luego decíamos, adjuntar lo que alguien escribió
en este código adjunto.
Y en el código adjunto dirá self dot.
Digamos que agregue a la lista y self se refiere a lo que esté a la izquierda del punto.
De esta forma nos permite tener una referencia a algo que aún no se ha creado en este caso.
JUGADOR uno Y hágales saber que, oye, cuando se cree, cuando creemos una instancia, quiero
que se asegure de que el Jugador uno tenga este atributo de nombre para que si creo otro jugador y
un jugador, Tom será el jugador.
Si imprimo el nombre del jugador y hago clic en ejecutar.
Tengo dos jugadores diferentes con dos nombres diferentes.
Pude usar la misma pieza de código pero tengo diferentes valores porque el yo, cada vez que instancia esto, se
refiere al primer jugador uno, luego al primer jugador por segunda vez al yo como una de esas cosas.
Eso se vuelve muy, muy difícil de entender.
Y es posible que deba ver este video un par de veces.
Pero la clave aquí debería resultarle evidente.
Es decir, puedo escribir código solo una vez.
Recuerda nuestro sorteo principal.
No me repito y puedo dinamizarlo diciendo que estos datos que vamos a crear para el objeto van
a ser dinámicos y van a cambiar según lo que le demos.
Para poder crear diferentes jugadores con diferentes atributos.
Pero aún usa el mismo código.
Ahora, puedo tener varias cosas aquí, puedo tener H, por ejemplo, y una vez más,
puedo decir que la edad autodidacta es igual a la edad y luego Cindy tendrá que pasar, digamos 44 y Thomas, 21.
De modo que aquí una vez más, si hago H.
Tendrán diferentes atributos.
Así que recuerde, estos son atributos o propiedades que tienen estos objetos y puede acceder a ellos haciendo la notación de
puntos y luego accediendo a la propiedad en sí.
Verá que no tengo corchetes aquí porque no es un método.
No está tomando medidas.
Simplemente dice, oye, quiero acceder a este atributo.
Si coloco un punto aquí, mi editor me lo dirá y tendremos el símbolo de, oye, tienes acceso al atributo,
la edad y el nombre.
Y de hecho, también tengo acceso para ejecutar el método, de modo que si hago clic, se ejecuta.
Bueno, recuerde, una ejecución es un método, así que obtengo este método enlazado, pero no imprime nada, no
realiza la acción.
Entonces tenemos que agregar una vez más los corchetes, presionar, ejecutar.
Y mira eso, puedo correr, luego no obtengo nada, luego veintiuno, ¿por qué obtenemos esto?
No porque recuerde que esta es una función que no devuelve nada cuando una función no devuelve
nada.
¿Qué obtenemos?
No lo conseguimos.
Entonces, tal vez pueda decir que regrese hecho si hago clic en, ejecutar.
Ahí tienes.
Hemos ejecutado Don uno.
Ahora, una última cosa antes de terminar este video, lo interesante aquí es si hago el jugador uno y luego el jugador
dos e imprimo esto y hago clic en ejecutar.
Verás que obtengo el personaje del jugador.
Pero el objeto, cada uno de estos objetos, el jugador uno y el jugador dos son una ubicación de memoria diferente.
Así que puedo usar una pieza de código, un plan para crear varios jugadores, pero estos jugadores no son
los mismos.
Se crean a partir del mismo plano, pero viven en diferentes lugares de la memoria.
Y eso tiene sentido, ¿verdad?
No queremos que Tom y Cindy sean el mismo jugador.
Son dos jugadores diferentes.
De esta manera podemos mantener las cosas seguras.
Y cualquier cosa que agregue al jugador dos, por ejemplo, digamos que el jugador dos ahora puede atacar.
Y el ataque será solo una propiedad que será 50 ahora si no ataco aquí, ves que ese jugador también lo ha
hecho.
Ataque, pero si juego un ataque Wyandotte.
Consigo otro.
El objeto no tiene ataque de atributo.
Espero que estés empezando a ver el poder de las clases, aunque puede ser difícil de
entender al principio, el poder se vuelve evidente cuando somos capaces de crear este plano que ahora podemos usar
una y otra vez para crear nuestros propios objetos. .
Exploremos más en el siguiente video.