‫Bienvenido de nuevo.
‫En este video, me gustaría mostrarles propiedades y enseñarles cómo funcionan y porque un video sería demasiado largo
‫y creé un video en el pasado sobre propiedades y era un poco demasiado confuso como
‫parecía.
‫Decidí desglosarlo y volver a grabarlo porque, como parece, no era lo suficientemente bueno.
‫Entonces, si encuentra otro video que es totalmente confuso y no lo ayuda en absoluto, hágamelo
‫saber, porque quiero que este curso sea el mejor curso que existe.
‫Está bien.
‫Entonces, lo que tenemos que hacer es, en primer lugar, crear una nueva clase.
‫Entonces vayamos al proyecto y agreguemos una nueva clase, porque quiero enseñarles los fundamentos de las propiedades porque
‫son un aspecto importante o un concepto importante que vamos a usar mucho.
‫Por eso es realmente importante que comprenda todo el contenido.
‫Bien, entonces comenzamos creando una nueva clase y voy a llamar a esta caja de clase.
‫Está bien.
‫Así que sé una clase muy simple.
‫Entonces, esta clase de caja será simplemente una clase que tiene una cierta cantidad de variables.
‫Está bien.
‫Entonces, por ejemplo, solo quiero calcular el volumen de la caja en función de su longitud, su altura y su
‫con.
‫Muy bien, creemos esas variables y las haré públicas por ahora.
‫Está bien.
‫Voy a hacer de esto una extensión pública y luego otra.
‫Y este será el alto y luego necesitamos el ancho.
‫Y finalmente quiero tener también el volumen para que el volumen sea el resultado final de esta caja.
‫Está bien.
‫Entonces ahora tengo un montón de variables.
‫Ahora, esas variables no son variables simples.
‫Son, de hecho, variables miembro, lo que significa que son las variables en el nivel de la clase en este
‫caso de la caja de clase.
‫Por lo tanto, tienen un impacto directo en toda la apariencia de la caja o en toda la estructura de una caja, por así
‫decirlo.
‫Está bien.
‫Y vamos a ver cómo podemos usar las variables miembro de una manera diferente o incluso en una estructura diferente, lo cual es
‫aún más seguro, porque el problema aquí es que son públicas, por lo que no son seguras.
‫Veremos cómo podemos solucionar esto.
‫Entonces, en primer lugar, sigamos adelante y creemos un nuevo método aquí.
‫Y solo voy a llamar a esta información de pantalla, porque la idea detrás de esto es
‫que solo mostrará la longitud, con la altura, y luego calculará el volumen y nos dirá qué tan grande es el volumen.
‫Está bien.
‫Solo voy a escribir una declaración corta de la línea derecha.
‫Así que introduzco un doble toque, lo que crea esta declaración de la línea derecha de la consola aquí para mí.
‫Y aquí, solo voy a decir algo como la longitud será la primera entrada y altura.
‫Será la segunda entrada.
‫Así que lo usaré así.
‫Y con esa tercera entrada.
‫Entonces el volumen es y luego tengo la cuarta entrada.
‫Está bien.
‫Así que esta es mi declaración de línea de viaje completa.
‫Y luego las variables que quiero usar son la altura de la longitud.
‫Con.
‫Y el volumen ahora es algo que necesito calcular en función de la longitud, la altura y el ancho.
‫Así que solo voy a hacer eso.
‫Solo voy a decir que el volumen es la longitud multiplicada por la altura multiplicada por el ancho.
‫Al hacerlo, se crea este volumen o se calcula el volumen, porque el volumen es el resultado de este cálculo aquí, alargue
‫los tiempos laterales donde va a estar el volumen.
‫Está bien.
‫Permítanme dividirlo en dos líneas para que sea un poco más legible.
‫Está bien.
‫Entonces ahora tenemos este método, este avión por ahora.
‫Sigamos y guardemos este archivo y vayamos a nuestro programa.
‫Si.
‫Aquí vamos a utilizar esta clase.
‫Vamos a crear un objeto de esta clase.
‫¿Cómo creamos objetos?
‫Bien.
‫Entonces creo un nuevo objeto, voy a llamar a este cuadro y será un cuadro nuevo.
‫Así es como creas un objeto de una clase o una instancia de una clase.
‫Entonces estoy creando una instancia de este cuadro de clase.
‫Así que más o menos una variable de tipo caja y cajas que creamos nosotros mismos.
‫Ahora, lo que puedo hacer es asignarle los valores para
‫poder seguir adelante y decir, OK, la longitud será tres, luego la altura será cuatro y la con será cinco, algo como eso.
‫Por supuesto, también necesito un signo igual aquí para que esto sea correcto.
‫Ahora lo que puedo hacer es seguir adelante y llamar a Box Start.
‫Esta información de juego, así que es genial.
‫Ya no necesito esta declaración de líneas brillantes aquí.
‫Ahora puedo guardar este archivo y ejecutarlo.
‫Así que ejecutemos este archivo y mostrará toda la información y la consola.
‫Así que ahí estamos, Lenfest gratis y Hyde está a favor y con sus cinco, así que el volumen es 16.
‫Muy bien, eso funcionó.
‫Eso es genial.
‫Así que esta información de pantalla funcionó y solo reproducía los detalles que queríamos.
‫Ahora, lo que podríamos hacer es cambiar los valores o cambiar los valores de las variables miembro de
‫nuestra clase de caja, y podemos hacerlo porque son públicas.
‫Derecha.
‫Entonces este es público.
‫Éste es público.
‫Este también es público.
‫Entonces todos son públicos.
‫Ahora bien, este es un código muy inseguro porque en este punto, si escribe robots miembros, que son totalmente públicos, todos
‫pueden cambiarlos en cualquier momento.
‫Entonces, todos los que puedan crear un objeto o cada clase que pueda crear un objeto de caja
‫podrán cambiar todos esos valores de esa instancia de la caja.
‫Entonces, todos tenían acceso a este cuadro y pueden cambiarlo ahora.
‫Y eso es algo que puede causar muchos problemas en el futuro, justo cuando usted programa y un
‫equipo y personal pueden volverse realmente engorrosos para hacer esto.
‫Entonces, hay mejores formas, hay formas más limpias de implementar eso, porque tal vez no desee que esto
‫sea ajustable en gran medida.
‫Quizás quieras que la longitud tenga un cierto valor.
‫Nadie puede ajustarlo.
‫Entonces lo que podrías hacer es hacer esto.
‫Muy privado, por lo que la longitud de la variable de mi miembro será privada y solo le asignaré un valor
‫predeterminado de tres.
‫Así que ahora cada cuadro que cree tendrá el valor de la longitud de tres.
‫Entonces, cada caja tendrá una longitud de tres pulgadas o metros o cualquiera que sea la métrica que esté utilizando.
‫Así que ahora ya no puedo asignar longitud.
‫Como puede ver, aparece un cuadro de error como este inaccesible debido a su nivel de protección.
‫Así que agregamos el nivel de protección haciéndolo privado.
‫Entonces ahora no podemos ajustarlo más.
‫Entonces, ¿cómo podemos cambiarlo?
‫Bueno, no podemos, no de esta manera.
‫Entonces necesitamos implementar algo.
‫Necesitamos implementar una forma alternativa de cambiar la longitud de la caja.
‫Está bien.
‫Para hacerlo, lo que podemos hacer es implementar algo llamado setters y getters.
‫Entonces, en este caso, ya ni siquiera podemos acceder a la longitud de la caja.
‫Digamos que quiero escribir la longitud.
‫Así que quiero consultar la longitud del cuadro de la línea derecha y luego acceder a la longitud del cuadro.
‫Como puede ver, mi ID ni siquiera me muestra la variable.
‫No puedo acceder a la caja de esa longitud, así que no puedo cambiarla, pero tampoco puedo leerla.
‫Está bien.
‫Entonces no puedo ni obtenerlo ni configurarlo.
‫Así que esto está configurando y esto está obteniendo la variable.
‫Estos son términos muy importantes para establecer y obtener, porque ahora lo que podemos hacer es crear métodos
‫en nuestra clase de caja, lo que nos permitirá establecer u obtener la longitud variable.
‫Así que hagamos eso.
‫Creemos un.
‫Setar, tan público.
‫Voight establece la longitud, por lo que este verbal establecerá la longitud ahora, ¿en qué lo establecerá?
‫Bueno, necesita una variable o un parámetro aquí.
‫Necesita un valor aquí en el que pueda configurarlo.
‫Así que va a hacerlo.
‫Necesito un número entero aquí, y solo voy a llamar a esta longitud única.
‫Entonces establecerá la longitud ahora, estableceré la longitud, la misma longitud.
‫Ahora bien, esto es confuso y también es incorrecto.
‫Entonces recibo una advertencia aquí.
‫Ni siquiera reciba un error aquí, porque como puede ver, los colores son diferentes.
‫¿Derecha?
‫Entonces, este color y ese color, son ligeramente diferentes.
‫Este es de este color muy claro y este es de un color azul más oscuro.
‫Entonces, ¿qué está pasando aquí?
‫Debido a que estamos usando la misma palabra aquí, usamos longitud aquí.
‫Estamos usando la longitud y aquí, aquí también.
‫Entonces, esta longitud aquí es en realidad esta o debería ser esta longitud aquí en la parte superior.
‫Entonces, si quiero hacerlo correctamente, puedo usar esta palabra clave.
‫Al hacerlo, digo, está bien, quiero cambiar la longitud, que es.
‫Partes.
‫De esta clase llamada caja, entonces quiero cambiar la longitud de este objeto.
‫Bien, en este caso del objeto que se crea de la caja de clase.
‫Está bien.
‫Entonces, sea cual sea la longitud que me asignen, sea cual sea la longitud que haya pasado, una longitud establecida se
‫llama, este método será.
‫Esta variable aquí, y se establecerá en la longitud, que es mi variable miembro privada de mi
‫caja, esto es muy importante porque lo que puedo hacer ahora es seguir adelante y cambiar la
‫longitud de la caja haciéndolo establecido largo.
‫También puedo establecer la longitud en, por ejemplo, tres y ahora ejecutar el código nuevamente y funcionará perfectamente
‫bien.
‫Y veamos, está bien, somos longitudes libres, hidrosfera y así sucesivamente.
‫Muy bien, ahora digamos que no quiero tener tres porque era el valor predeterminado.
‫Ahora, digamos que quiero tener la duración y ahora podemos ver que está funcionando y que el volumen también se ha
‫ajustado.
‫Así que incluso funcionó para el cálculo.
‫Eso es genial.
‫Entonces ahora podemos establecer una variable, que es una variable miembro de una clase.
‫Entonces eso es importante.
‫Estamos hablando de una clase diferente.
‫No es de la misma clase.
‫Ahora, lo que podemos hacer es intentar acceder a esta longitud porque es privada.
‫¿Derecha?
‫Entonces, ¿cómo podría acceder a él?
‫Porque tal vez realmente necesito esta variable aquí en alguna parte.
‫Quiero acceder a la longitud, pero no puedo.
‫Entonces, lo que puedo implementar es algo llamado GETER.
‫Así que consigo mucho público.
‫Y en este caso, el tipo tiene que ser del mismo tipo que la variable que quiero devolver.
‫Y en este caso, quiero devolver el valor de esta longitud donde quiero devolver la longitud en sí.
‫Derecha.
‫Entonces es de tipo fin.
‫Entonces necesito devolver un tipo de finalización para este método.
‫Así que este se alargará.
‫Y esta es también la convención de usar el nombre get con una G mayúscula y luego el nombre de la variable que
‫desea obtener.
‫Y en este caso, quiero obtener la longitud variable y ahora solo devuelve la longitud.
‫Ahora, para ser más precisos, devuelva esta longitud.
‫Por supuesto, podrías solo por ese tiempo.
‫Pero cuando agrega esto, queda perfectamente claro que estamos hablando de la variable miembro aquí.
‫Entonces, estamos hablando de la variable que está en el nivel más alto de esta clase.
‫Entonces no está dentro de ningún método o algo así.
‫Ni siquiera podrías acceder a él de esta manera.
‫Pero aquí es esta longitud particular de la que estamos hablando.
‫Entonces, si hago clic en él, puedes ver mi yo. D. lo marca automáticamente.
‫Y también marca esta longitud aquí en la parte inferior.
‫Entonces ahora puedo obtener la longitud usando get length usando este método público y es importante que sea público porque si
‫no fuera público, entonces no podría acceder a él.
‫Entonces, en este caso, estoy guardando la caja nuevamente y ahora obtengo la longitud llamando a este método get length
‫y ahora de repente funciona nuevamente.
‫Así que ahora puedo seguir adelante.
‫Y por supuesto.
‫Aquí también correctamente, la longitud y vamos a ejecutarlo de nuevo, y va a decir que la longitud del cuadro es
‫y en este caso es cuatro.
‫Muy bien, esto es solo la preparación para las propiedades, pero es un concepto importante, definidores y
‫captadores.
‫Esto es algo que también verás bastante.
‫Así que es un enfoque totalmente bueno, pero hay enfoques mucho más fáciles y rápidos.
‫Así que esta es solo una forma de hacerlo.
‫Pero les voy a mostrar dos o incluso tres formas más de hacerlo aún más rápido y de tener el
‫mismo tipo de protección, porque lo que estamos haciendo aquí se llama encapsulación.
‫Entonces estamos encapsulando el exceso de nuestra longitud.
‫La definición de es que la encapsulación se refiere a la construcción de datos con los métodos que operan
‫sobre esos datos o la restricción del acceso directo a algunos de los componentes de un objeto.
‫Entonces eso es exactamente lo que estamos haciendo.
‫Estamos restringiendo el acceso a este componente llamado longitud, que es parte de un objeto o de nuestra caja de clase
‫del cual podemos crear objetos.
‫Está bien.
‫Y creamos estos setters y getters para poder ajustarlos.
‫Ahora, lo bueno es que puedes definir cómo quieres encapsular.
‫En este caso, los hice públicos a ambos.
‫Pero, ¿y si no quiero que se hagan públicos?
‫¿Y si quiero que esto sea así?
‫No es adecuado, así que digamos que no quiero que nadie pueda establecer la longitud de mi caja, así que lo que podría
‫hacer es hacer que esta sea privada.
‫Así que ahora solo.
‫Las clases que hereden de nuestra caja o la caja misma podrán establecer la longitud desde fuera, ya no
‫podremos establecer la longitud.
‫Entonces, estableciendo la longitud aquí, esta línea de código ya no funciona porque decidí, OK, si
‫alguien quiere establecer la longitud, solo quería ser la clase en sí o heredar las clases, pero no las clases fuera
‫de mí.
‫Esto es algo que puede modificar directamente desde aquí, también podría decir, OK, incluso obtener la
‫longitud no estaría permitido fuera de aquí.
‫Está bien.
‫Pero ahora lo bueno es que puedes seguir adelante y ajustarlos.
‫Digamos que alguien quiere subir el volumen.
‫Y ahora, en este punto, aún no hemos configurado el volumen.
‫Entonces, lo que podemos hacer en su lugar, podemos seguir adelante y decir public int get volume.
‫Y si alguien quiere conseguir el volumen, no solo vamos a devolver el volumen, sino que lo
‫que haremos es volver.
‫Esta longitud inicial multiplicada por este pensamiento, la altura multiplicada por este pensamiento, de modo que si alguien quiere obtener
‫el volumen, no obtendrá el volumen directamente.
‫Así que no acceda directamente a esta variable.
‫Esta variable de volumen.
‫Pero en realidad obtendrán el resultado del cálculo.
‫Entonces, si guardo esto y en su lugar sigo adelante y aquí uso get volume, entonces el volumen de las cajas es y ahora mostrará el
‫volumen de la caja.
‫Veamos, caja, este volumen es 60.
‫Entonces, en general, lo que hacemos con estos establecedores y captadores es que
‫no damos acceso directamente a la variable, a la variable miembro, sino que solo damos acceso a un método
‫que luego puede ajustar la variable y nosotros mismos podemos decidir cómo pasamos este valor.
‫Entonces, cómo repartimos el valor en este caso con un gran volumen, decidimos, está bien, no queremos darle el volumen
‫en sí, pero queremos darle el resultado de un cálculo.
‫O podríamos decir, está bien, si alguien quiere obtener el volumen, vamos a
‫decir que será el volumen multiplicado por dos o algo así, o si alguien quiere establecer la duración y es algo negativo.
‫Así que digamos que volvemos a hacer esto público, una voz pública extensamente y ahora verificamos dos veces si.
‫Largo.
‫Es menor que cero.
‫Vamos a lanzar un error, lanzar un nuevo tamaño de excepción o esta longitud debería ser mayor que cero.
‫Está bien.
‫Entonces, si la longitud es menor que cero, lanzamos una excepción y esto simplemente bloqueará nuestro programa, por lo que esta
‫línea nunca se ejecutará.
‫Así que ahora intentemos esto.
‫Vayamos a nuestro programa y establezcamos la longitud de nuestra caja en un valor negativo.
‫Pongámoslo en menos cuatro.
‫Ahora lo ejecutamos nuevamente y veremos que obtenemos una excepción.
‫Entonces nuestro programa se bloquea y obtenemos una excepción aquí que dice.
‫Sistema, la longitud excepcional debe ser superior a cero.
‫Como puede ver, con excepción lanzada, podemos lanzar nuestras propias excepciones.
‫Incluso podemos decir lo que deberían decir las excepciones.
‫Y debería ser significativo.
‫Debe ser algo útil y que aclare cuál es el error.
‫En este caso, creamos un error porque establecimos la longitud en algo menor que cero.
‫Está bien.
‫Así que ese es el poder de estos setters y getters, porque quizás te preguntes, ¿por qué necesitaría esos setters y
‫conseguirnos a nosotros?
‫¿Por qué no puedo simplemente acceder a la longitud directamente si solo tengo setters y también obtengo?
‫Ahora que lo ve, puede decidir activamente qué se establecerá y qué se obtendrá si alguien intenta
‫acceder a esta variable y cambiarla o incluso simplemente recuperarla.
‫Muy bien, esto fue mucho más largo de lo que había anticipado y estaba planeando hacer
‫este video, pero realmente quería dejar todo en claro porque este será un trampolín
‫importante para el próximo concepto, que será propiedades.
‫Entonces, verá cómo podemos resumir todo esto o hacerlo mucho más corto mediante el uso de propiedades.
‫Así que diría que vayamos al siguiente video donde veremos cómo usar las propiedades y cómo se relacionan
‫con lo que hemos aprendido en este video.
‫Espero que tenga sentido.
‫Si tiene alguna pregunta, por favor hágamelo saber.
‫Y sí, solo escribe un comentario y, por supuesto, discusiones.
‫Y, por cierto, muchas gracias por todos los que brindan comentarios, porque realmente me ayuda a
‫mejorar el curso si solo miran esto pasivamente, porque está totalmente bien.
‫Pero realmente aprecio si tiene comentarios y es constructivo y realmente me ayuda a saber en qué punto algo no está
‫claro, porque si solo dice, está bien, este video es una completa basura, entonces no será
‫tan útil como si usted digamos, está bien, no entendí el concepto en un minuto cinco o algo que entiendo
‫mucho mejor cuál es el problema.
‫Así que gracias de nuevo y nos vemos en el próximo video.