Vamos a hablar ahora sobre los guerras y series que este tema es algo que existe desde hace mucho tiempo
en otros lenguajes pero vamos a explicaros rápidamente a comentar porque no es tan complicada la cosa.
Vamos a crearnos una clase llamada cuadrada abren y cierran llaves el cuadrado va a tener dos propiedades
Dogu que ustedes ya saben que eso es un numérico con decimales y les voy a poner el nombre lado puntico
Ma va a tener otro Tobo y se llamará área puntico ahora aprovechando el concepto y tengo la oportunidad
de hacerlo en este caso si ustedes le ponen un guion bajo a las propiedades de una clase las hacen privadas.
Qué quiere decir eso que sólo va a funcionar dentro o si lo hace visible dentro de esta clase o sea
dentro de esta clase ustedes van a poder hacer referencia a este guión bajo el lado a este guión bajo
Arias pero fuera de esta clase como por ejemplo aquí en este Main main parentesis abren y cierran llaves.
Aquí ustedes no podrían acceder a la parte del lado y el área cuando estamos trabajando acá.
Claro DARPA ahorita sí lo permite pero cuando estemos trabajando ya en florecer y tengamos archivos
independientes y separados eso va a ser imposible de acceder porque con esto estamos convirtiendo esta
propiedad en privada.
O sea solo visible dentro de la propia clase.
Bien voy a dejarlo así por los momentos tengo mi lado y tengo mi área.
Voy a crearme un nuevo una nueva instancia de ese cuadrado entonces final cuadrado igual a nuevo cuadrado.
Recuerden que como no tiene un constructor y no estoy obligando a ningún argumento perfectamente lo
puedo hacer así bien.
Qué pasaría si yo ahora quiero asignar un valor a este lado pero suponiendo que yo no puedo acceder
a ese cuadrado apuntalaba cuadrado punto y un bajo lado.
En teoría esto yo no lo voy a poder hacer.
Claro aquí sí me está permitiendo dar paz pero no lo debería de poder hacer y yo quiero acceder a una
propiedad llamada al lado pero esa propiedad no existe y le quiero asignar el valor de 10.
Cómo podemos hacer esto.
Noten que estoy usando algo muy parecido a una propiedad y aquí es donde entra en juego los servers
o el set para eso yo voy a decirlo de la siguiente manera Zet espacio el nombre de la posible propiedad
que realmente es como una función el nombre será lado y pongamos paréntesis y como argumento sería lo
que yo estaría esperando acá.
O el valor posible que el laudo puede tener en este caso voy a decir que tiene que ser un doble a fuerza
o sea tiene que ser un número con decimales y le voy a poner a ese argumento el nombre de valor.
Abro y cierro yaks que es lo que yo quiero hacer acá voy a hacer una pequeña validación porque esto
es una función pero se va a trabajar igual a eso voy a decir que si el valor que recibo es menor o igual
a cero entonces quiero disparar un error y que el programa no funcione.
O sea que no puede haber un lado de cero o números negativos.
Para eso puedo usar la palabra reservada Flow como para lanzar un error y el error va a ser el lado
no puede ser menor a cero.
No puede ser menor o igual a cero punto y coma es decir si este valor llega a ser cero base se va a
disparar error y ya no va a seguir ejecutando el programa.
Caso contrario entonces lo que quiero hacer es asignar este valor a un lado para eso sería de un bajo
lado igual al valor puntico.
Vamos a ver si esto es cierto.
Si yo lo dejo así y ejecutó el programa no pasa nada o sea funciona y lo puedo demostrar haciendo una
impresión de esa clase digamoslo por acá el Strength parentesis y voy a hacerlo de una vez con la forma
corta con una función de flecha por aquí lado dos puntos y un bajo yo pabajo Dios mío se me perdió y
un bajo lado punto y coma.
Entonces probamos la clase vamos a ver qué es lo que sucede.
Print paréntesis y aquí el cuadrado punto y coma.
Ejecutemos solo si esto funciona deberíamos de tener el lado 10 y acuérdese que estoy asignándole aquí
en el yo un bajo lado el valor que estoy recibiendo como argumento acá o sea estoy recibiendo eso pero
qué pasa si ahora mando un cero a cero debería de caer dentro de esta condición y me debería de disparar
el error.
Entonces probemos no que ahí está.
Una cosa es ser una acepción no controlada.
El lado no puede ser menor o igual a cero excelente entonces ya tengo una validación implícita cuando
yo quiera asignar cualquier La2 a un valor a ese lado también esto se puede hacer en el constructor
y en otros en otras posiciones.
Ahora pensemos con el área yo sé que el área es igual al lado por lado en un cuadrado pero eso suena
bonito no pero yo quiero calcular el área cuando sea solicitar.
Perfectamente puedo hacer lo siguiente.
Esta es la sintaxis.
Primero viene el tipo de dato que esto va a regresar que sería un robo.
Luego viene la palabra reservada ket seguida del nombre que yo quiero utilizar como si fuera una propiedad
fuera de la clase o sea cómo quiero que sea visto fuera de la clase.
Voy a ponerle arena y ojo que aquí no van parentesis parecerá raro porque si es como una función pero
no lleva parentesis de esa manera.
Y aquí escribamos la lógica que en mi caso sería un retorno de El Bajo y un bajo lado por el signo de
asterisco lado puntico.
Entonces esto es lo que estoy haciendo estoy regresando lo que es el área de ese cuadrado perfectamente
puedo imprimirlo acá y colocarlo aquí abajo y voy a decir que el área área viajarás área es igual a
si no de dólar porque quiero ser una interpolación de estrenase aquí y voy a decir que es el cuadrado
punto área no bajo área es sólo el área podría asignara y el área también podría grabarlo allí.
De hecho esta tarea además lo voy a comentar.
Entonces estoy llamando a ese área.
Voy a tocar Rohn y aquí tendríamos que quitarlo y ponerle un 10.
Por ejemplo el área de este cuadrado sería de 100 por lado por lado perfecto.
Entonces de esta manera ustedes pueden poner la lógica que deseen a la hora de hacer.
Es bueno establecer valores o de obtener valores aquí ustedes pueden realizar todo el código que sea
y también más de uno de ustedes va a decir esta es una función que solo regresa a una línea.
Podríamos resumirlo.
Vamos a ver si podemos.
Entonces tendríamos que quitar esta llave o dejar ese punto y coma el retorno Quito función de flecha.
De esta manera Yep área que va a ser igual al lado por lado.
Ustedes creen que funciona.
Vamos a probarlo y debería de funcionar honestamente podría funcionar.
Ahí está perfecto.
Bueno hemos aprendido cómo son los sets que es como para establecer información y pueden desarrollar
toda la riqueza que usted desee.
Y también tenemos la forma de los Kerensky para obtener información y procesar todo lo que ustedes desean.
En ese caso esto lo usaremos bastante cuando implementemos el patrón Block en nuestros ejercicios pero
eso mucho más adelante porque hay que hablar que es Blok y otras cosas pero por lo menos ya conocemos
lo que son los sets y los Jets y cuando los miremos ya utilizándolos en las aplicaciones no nos va a
ser tan extraño verlos los veo en el siguiente video.