[MÚSICA] [AUDIO_EN_BLANCO] Hola. Me da mucho gusto que sigas con nosotros. Por otra parte, los métodos auxiliares son aquellos que son invocados desde métodos públicos de la clase. Se usan para darle nombre a cálculos frecuentes pero con valores diferente, y en general, son privados. Si toda la información se pasa de los parámetros, no actúan sobre algún atributo de objeto, pertenecen a la clase y podrían ser públicos. Veamos los métodos auxiliares de esta clase. Tiene las expresiones condicionales que evalúan si un argumento entero está en rangos, que codificarás en un método auxiliar al que llamarás checaEntero. Regresa un entero, puede ser público o privado, pertenece a la clase, you que no toca o invoca a nada del objeto. Sus parámetros son límite inferior válido que es un entero. El valor del argumento que también es entero. Límite superior válido, que es entero. El método va a regresar un valor entero mediante una condicional aritmética. Si es menor que el límite inferior, entrega al límite inferior. Si no, verifica si es mayor al límite superior. Si lo es, entrega al límite superior, de otra manera, entrega el argumento dado. [AUDIO_EN_BLANCO] Las expresiones condicionales que verifican que una cadena sea válida, las codificarás en un método auxiliar llamado checaCadena. [AUDIO_EN_BLANCO] Regresa una cadena, es de acceso público y pertenece a la clase porque no toca ninguno de los atributos de objeto. Tiene una cadena como argumento y regresa una cadena calculada por una condicional aritmética. En la expresión booleana, se verifica que la referencia no sea null, o bien, que no sea una cadena vacía. Los operandos lógicos en Java se evalúan en lo que se conoce como corte circuito, esto quiere decir que evalúa los operandos de izquierda a derecha, hasta que tenga definido el resultado de falso o verdadero. Se evalúa la primera expresión, y si cadena es null como el or, solo requiere a uno de sus operandos duradero, you tiene el resultado y no evalúa el operando derecho. Si la referencia es distinta de null, entonces evalúa si la cadena es vacía. Si el resultado de la evaluación es verdadero, true, el argumento no sirve, y lo sustituyes por un mensaje específico. Si no es nula ni vacía, tamaño en cero, regresas la cadena que recibiste como argumento. Java tiene dos operadores booleanos o lógicos infijos, con dos operandos, AND y OR, y un prefijo NOT con un operando. Ahora veremos tabla de verdad de OR, para que recuerdes cómo se combinan los operandos. En el caso de Java, deja de evaluar si operando izquierdo es verdadero o true, porque el OR you es verdadero. En la tabla de verdad del operando AND, en el caso de Java, deja de evaluar si operando izquierdo es falso, porque el AND you es falso. Como acabas de ver, el orden de operandos en expresiones booleanas es muy importante. Si la expresión booleana en el método checaCadena fuera con el orden de los operandos invertido, y la referencia fuera nula, el programa abortaría al tratar de sacar el tamaño de una cadena que no existe. En el caso de operadores booleanos, hay que tener cuidado en el orden de los operandos. Regresemos a la expresión booleana anterior. you que tienes estos métodos auxiliares, es muy fácil codificar el constructor con tres parámetros. Asignas al tipo de disco el valor verificado de checaEntero. Asignas al nombre del disco el valor verificado del argumento nombre, y luego le quitas los espacios de fin de cadena. Asignas al atributo del año de grabación el argumento fecha de verificado. [AUDIO_EN_BLANCO] Compilamos y nos da algunos errores. [AUDIO_EN_BLANCO] Y te da un error de tipos, debido a que tipo disco es de tipo short, y estás tratando de asignarle un valor de tipo int que regresa a checaEntero. Tenemos que convertir ese valor a un short, y lo hacemos con una operación que se llama casting. Consiste en poner delante de la expresión, entre paréntesis, el tipo que queremos forzar, que es un short. Compilamos. Lo que pasa es que el tercer constructor solo tiene el encabezado por lo que te reclama que no le asignaste valor a las constantes de objeto que son tipo disco, nombre y año. Regresemos a ver algunos de los operadores de Java. Se les conoce como conectivos lógicos, you que comparan valores del mismo tipo y entregan el valor falso o verdadero. Son binarios infijos y su precedencia es 7. Expresión condicional. Se escribe en expresión booleana, lo que sigue a interrogación es el valor si la expresión booleana es verdadera, y lo que se escribe a continuación de dos puntos, es el valor, si es falso. Se pueden anidar, y es un operador ternario infijo con precedencia 14. Operador booleano para la operación OR. Binario infijo con precedencia 3. El símbolo de igualdad es también un conectivo lógico. Su significado es obvio. Binario infijo con precedencia 8. Este símbolo de igual es una asignación con una variable de lado izquierdo y una expresión del mismo tipo que la variable del lado derecho. Aparecen para las tres constantes. Como su precedencia es 15, primero se evalúa su lado derecho para después asignarlo a la variable del lado izquierdo. Es un casting que tiene precedencia 3, pero la llamada a función checaEntero se evalúa antes. La llamada a método es el que tiene mayor precedencia que cualquier otro operador, pero solo pueden aparecer en una expresión si es que entrega algún valor. Hemos visto dos métodos de la clase string. Este operador regresa el tamaño de la cadena que lo invoca. Este otro operador quita los blancos del principio y final de la cadena que lo invoca. El punto es un operador de selección dentro de una clase u objeto, tiene precedencia 1, es decir, antes que cualquier otro, pero tiene que evaluar a sus operandos y tiene asociatividad izquierda. Sigamos con el segundo constructor. El encabezado del constructor es el que tenemos registrado. Como tiene los primeros tres parámetros nombrados acordemente, copias esas asignaciones tal cual del primer constructor. La cuarta asignación sería de la siguiente forma. Nos damos cuenta que existe un error, you que permitidas en ambos lados de la asignación se refiere al argumento, es decir, la variable local más cercana. Nosotros queremos que la de la izquierda sea el atributo. Tienes que identificar a permitidas del lado izquierdo de la asignación para que sea el atributo, no el parámetro. Esto se hace con el identificador de objeto this, este objeto, el que se está construyendo en este método, seguido de un selector de campo. Con esto terminamos el segundo constructor. Compilamos. Cambiamos de archivo de video a video y nos vuelve a faltar el casting. Lo volveremos a corregir tras bambalinas y seguiremos con el siguiente video con el tercer constructor. No te lo puedes perder. [MÚSICA] [MÚSICA] [MÚSICA]