Clases es algo fundamental que nosotros tenemos que aprender a dominar porque básicamente todo en Florea
aparte de que todo es un objeto o en dar todo es un objeto en flores casi todo son clases entonces tenemos
que dominar este concepto así que mucha atención.
Recuerden que toda Toprural adquiere su método main void main y ahí está ahora una clase.
Ya deberíamos de saber que es una clase porque eso no es un curso de programación de cero.
Esto es un curso para aprender Flore con su pequeña introducción a Tarth pero sólo para que hablamos
el mismo idioma.
Mentalizarse que una clase es un molde como para hacer galletas.
Si yo tengo o quiero hacer galletas todas iguales voy a usar ese molde y voy a generar cada una de esas
galletas utilizando mi molde ese molde es una clase esos moldes se definen de la siguiente manera voy
a poner aquí la palabra reservada Class seguida del nombre de ese molde.
En este caso voy a ponerle Class Heroe abren y cierran llaves ok.
Noten que la H mayúscula es una tradición no es que sea obligatorio pero es un estándar o mejor dicho
que a la hora de nombrar las clases la primera letra siempre va capitalizada y si la clase tuviera más
palabras cada una de esas palabras va capitalizada con su primera inicial mayúscula por ejemplo héroe
súper amigo o algo así.
Entonces noten que cada una de las palabras va a capitalizar sin espacio y así simplemente capitalizar
voy a borrar eso ok.
El héroe va a tener propiedades que mentalizarse que una propiedad simplemente son como variables que
están dentro de la misma.
Voy a tener el tipo string y la propiedad va a ser el nombre Punto y Coma y voy a tener otro string
llamado poder puntico.
De esta manera lo que estoy diciendo es que el héroe siempre va a tener dos propiedades una llamada
PPoder y otra llamada nombre.
Vamos a crearnos una nueva instancia de un héroe lo haré de la siguiente manera Baur Wolverine Spazio
igual a new hero parentesis punto y coma.
Aquí hay un par de cosas raras.
Vamos a ver se acuerdan primero que casi que yo les digo que no vamos a usar Bahr pero ya llegaré a
eso.
Aquí una palabra nueva que es el New el Enio en dar es opcional sirve para definir una nueva instancia
de una clase pero desde la versión 2 y superior ya esto es opcional.
De hecho todo lo que ustedes van a ver en el curso van a poder omitir perfectamente la palabra reservada
año y ejecutar el programa y no voy a tener ningún error pero se acostumbra que cuando ustedes estén
creando una nueva instancia de una clase que va directamente a una variable pongan la palabra reservada
y porque queda más claro no es obligatorio y siempre va a inferir que es de tipo bueno en este caso
héroe porque le estoy asignando directamente pero dar siempre lo va a inferir correctamente pero como
le digo es una tradición de que si ustedes están haciendo una asignación a una variable entonces le
ponen la palabra.
Si ustedes ven documentaciones o ejercicios viejos de flores van a notar que todo todo diseño pero realmente
es opcional y ustedes lo van a haber actualizado en el curso.
No se preocupen.
Ok entonces puedo perfectamente decir en lugar de Bart que es de tipo R y también es totalmente válido
pero voy a dejarlo así en vez de Bahr voy a poner la palabra final final es para decirle a Dart que
esa variable jamás va a cambiar de su valor como tal puedo cambiar las propiedades de nombre y poder
perfectamente pero no voy a poder asignar a Wolverine un nuevo valor o es un nuevo héroe.
Esto no me lo va a permitir porque es final y ahí está marcando el error el final es muy parecido a
una constante.
También existen las constantes en Tarth pero la diferencia radica en la forma de la compilación.
Normalmente nosotros siempre vamos a trabajar con Finals.
Si yo imprimo esto en consola parentesis y voy a imprimir Wolverine.
Qué creen que aparezca aparecer null null.
Porque ambas propiedades están ENUM.
Qué creen.
Bueno va a aparecer instancia de héroe y eso es correctamente Hualpén.
Es una instancia de héroe.
Yo sé que más de uno decía pucha pero yo quería ver el nombre y el poder y todo eso.
Ya vamos a llegar a eso una manera sencilla de hacerlo.
Ahora si yo quiero a la hora de crear un nuevo héroe que estas dos propiedades tengan valores no puedo
hacer de la siguiente manera con un constructor el constructor tiene exactamente el mismo nombre de
la clase héroe parentesis Punto y Coma el mismo nombre que ustedes tienen en la clase es el mismo nombre
que va a tener el constructor mismo nombre si yo lo dejo así nada va a cambiar porque estoy diciendo
que el constructor no recibe ningún argumento.
Eso es exactamente lo mismo.
Pero si ahora le digo que yo voy a recibir un Extrem nombre y un poder aquí si ya cambia un poco la
cosa voy a decir que el disputo nombre va a ser igual al nombre que recibo por argumento y el disputo
poder va a ser igual al como argumento si yo lo dejo así debería de tener un error acá en breve debería
de aparecer el error ventajista aquí está el error que dice a la hora de hacer el 9 y aquí faltan argumentos.
Si yo borro esto posiblemente aquí ya me empieza a marcar la información.
Bueno los errores perfecto.
El primer argumento va a ser el nombre voy a poner aquí Logan Coma y el segundo el poder que el poder
de la regeneración.
Falta un punto y coma si yo ejecuto el programa voy a tener lo mismo de una instancia de Hualpén.
Yo sé que más de uno decía pucha yo quiero ver aquí el poder y es perfectamente lo pueden hacer imprimiendo
las propiedades de directamente aquí punto poder y punto nombre porque esas son las propiedades de Wolverine
o de un héroe Tocorón.
Y aquí están excelente pero pero a mí me gustaría que esto fuera un poco más sencillo.
Me gustaría que a la hora de imprimir warning aparecían en las propiedades.
Cómo podemos hacer eso.
Podemos sobrescribir el método de impresión de la siguiente manera voy a bajar un poco y voy a escribir
tu string note la S mayúscula ok y aquí tengo que retornar un string.
Por eso voy a poner la palabra acá en este método.
Ok.
La diferencia de un método y una función básicamente es que el método es el que se encuentra dentro
de una clase y una función es la que se encuentra fuera de una clase ok.
Bueno aquí yo voy a regresar.
Es un retorno de cómo quiero que se imprima en vez de Instant o Jibo o Inzá o héroe.
Yo lo que quiero aquí es que imprima el 10 punto nombre.
Pero como estas son dos palabras y todas las dos palabras es lo que me va a hacer a mí la relación del
nombre y extraer de mi héroe el nombre lo voy a poner entre llaves.
De esa manera no importan los espacios acá pero voy a ser así.
Signo de dólar llaves disputo nombre ya les voy a enseñar otra manera más sencilla de trabajar con las
clases.
Pero estamos empezando.
Espacio voy a poner un guión y aquí nuevamente disputo poder.
Aquí falta un punto y coma grave los cambios.
Logramos los cambios de la costumbre y voy a darle correr.
Bueno aunque ustedes presionan controlé deseo Comaneci si lograba lograba aquí pero bueno podemos notar
que ahora la impresión de wore en vez de instances o héroe ahora me aparece ese nombre Logan espacio
en menos espacio regeneracion porque es lo que estoy mandando escribir aquí en el método.
Ahora esto sería lo mismo que uds mandarãn la impresión del punto tu instruyan a la clase.
Ok entonces Toko iba a llamar este método nuevamente.
Es lo mismo voy a dejarlo como estaba abordar esto y lo dejo así por los momentos.
Ahora aquí tendríamos el mismo problema que vimos en las funciones.
Qué pasa si la persona se confunde y pone la regeneración primero y por último pone el nombre.
Si yo Tocorón en teoría no está mal porque aquí tendríamos regeneracion y Logan.
Pero hagamos algo un poco más interesante.
Aquí voy a poner nombre dos puntos eso y después va a ser el poder dos puntos espacio y el poder.
Si yo lo ejecuto vamos a ver el error más claramente estamos mandando al revés los argumentos.
Nombre regeneracion.
El poder es lograr gastar revés como esto es una función.
Recuerden que un constructor es una función común y corriente podemos mandar nosotros los nombres de
los argumentos.
Exactamente igual como lo hicimos anteriormente que es poner esto entre llaves.
De esta manera ahora estoy diciendo que estamos recibiendo un nombre que es de tipo string y estamos
también recibiendo el poder de tipo string a quien está marcando un error porque ya no son argumentos
posicionales quiere decir que este argumento no cae directamente el primer argumento de acá en el momento
que ustedes colocan estas llaves ya se conocen como argumentos o argumentos con nombre.
En pocas palabras esto no sería así.
Voy a borrarlo.
Aquí tendríamos que escribir por ejemplo el poder.
Empecemos por Proder dos puntos regeneracion y estoy diciendo que la regeneración va a caer directamente
hacia el poder.
Ahora otra cosa que ustedes tienen que notar es que si yo ejecuto el programa va a compilar sin ningún
problema y en el nombre voy a tener Nul más de uno va a decir Ah bueno debería haber una forma de poner
obligatorio si eso se puede pero lo vamos a ver un poco más adelante cuando ya estemos trabajando con
la parte de flores.
Lo que sí podemos hacer inmediatamente es ponerle un nombre opcional por ejemplo aquí voy a poner igual
y el igual va a ser sin nombre algo así voy a tocar Ron.
Acuérdense que estoy mandando el nombre.
Entonces ahora el nombre va a ser sin nombre como estaca pero si yo lo quiero mandar ahora que voy a
poner nombre.
Dos puntos Logan déjenme correr un poco para acá para que podamos ver todo el espacio en una sola línea
y Tocorón.
Ahora sí debería ser nombre Logan y el poder la regeneración perfecto lo vamos a dejar así por los momentos
y continuamos en la siguiente clase porque todavía hay cosas que.