Proyecto¶
Se va a continuar el proyecto que contiene una librería con métodos y clases útiles para facilitar ciertas operaciones.
En esta versión, se creará una clase ConsoleInput que trabajará con métodos para facilitar la lectura por teclado.
La clase contendrá una serie de métodos que permitan solicitar al usuario distintos datos y que gestionen el hecho de que los datos introducidos no correspondan a los tipos esperados o que no sean valores válidos, de manera que se les vuelva a solicitar de nuevo, hasta que los valores introducidos sean válidos. Internamente un método puede llamar a otro método de la clase.
Info
SE PODRÁN CREAR ADEMÁS LOS MÉTODOS Y ATRIBUTOS QUE SE CONSIDEREN NECESARIOS
¡OJO!
Se deberá de tratar con minuciosidad todas las posibilidades haciendo uso de estructuras de control de excepciones.
Los métodos que aparecen a continuación se refieren al tipo byte. Realizarlos también para los tipos short, int,long, float y double:
readByte()
: retorna un byte introducido por el usuario.readByteUnsigned()
: lo mismo que el anterior, pero números sin signos.readByteLessThan(byte upperBound)
: retorna un byte introducido por el usuario inferior al parámetro.readByteUnsignedLessThan(byte upperBound)
: lo mismo que el anterior, pero números sin signos.readByteLessOrEqualThan(byte upperBound)
: retorna un byte introducido por el usuario inferior igual al parámetro.readByteUnsignedLessOrEqualThan(byte upperBound)
: lo mismo que el anterior, pero números sin signosreadByteGreaterThan(byte lowerBound)
: retorna un byte introducido por el usuario superior al parámetro.readByteUnsignedGreaterThan(byte lowerBound)
: lo mismo que el anterior, pero números sin signos.readByteGreaterOrEqualThan(byte lowerBound)
: retorna un byte introducido por el usuario superior o igual al parámetro.readByteUnsignedGreaterOrEqualThan(byte lowerBound)
: Lo mismo que el anterior, pero números sin signos.readByteInRangeInclusive(byte lowerBound, byte upperBound)
: retorna un byte introducido por el usuario cuyo valor esté en el rango [lowerBound, upperBound], ambos incluidos.readByteInRangeExclusive(byte lowerBound, byte upperBound)
: retorna un byte introducido por el usuario cuyo valor esté en el rango [lowerBound, upperBound], donde upperBound no esté incluido.
Además, realizar los métodos siguientes:
readChar()
: retorna un carácter introducido por el usuario. Si éste introduce más de un carácter, se le vuelve a solicitar.readChar(String validCharacters)
: retorna un carácter introducido por el usuario. El parámetro validCharacters contiene los posibles caracteres válidos.readVowel()
: retorna una vocal introducida por el usuario.readDigit()
: retorna un carácter dígito introducido por el usuario.readConsonant()
: retorna una consonante introducida por el usuario.readLowerCase()
: retorna una letra minúscula introducida por el usuario.readUpperCase()
: retorna una letra mayúscula introducida por el usuario.readString()
: retorna una cadena de caracteres introducida por el usuario.readString(int maxLength)
: retorna una cadena de caracteres de como máximo maxLength caracteres.readBooleanUsingChar(char affirmativeValue)
: retorna un booleano a partir de un carácter introducido por el usuario, de manera que si coincide con affirmativeValue (en mayúsculas o minúsculas) retornará true, y si se trata de cualquier otro carácter retornará false.readBooleanUsingChar()
: retorna un booleano a partir de un carácter introducido por el usuario, de manera que si coincide con s o S retornará true y en caso contrario retornará false.readBooleanUsingInt(int affirmativeValue)
: retorna un booleano a partir de un entero introducido por el usuario, de manera que si coincide con el valor proporcionado retornará true, y si se trata de cualquier otro valor entero retornará false.readBooleanUsingInt()
: retorna un booleano a partir de un entero introducido por el usuario, de manera que si coincide con 1 retornará true, y si se trata de cualquier otro valor entero retornará false.
Para realizar este proyecto se tendrá en cuenta:
- NO se realizará una versión sobre el proyecto 3, sino que se realizará un copia de dicho proyecto en esta versión
- Se mantendrá el paquete principal llamado
com.NOMBRE.common
donde nombre será el nombre del alumno y common el nombre del proyecto. - Se creará una clase Main, donde se ponga en práctica los usos de la librería y se valorará la complejidad de dicho Main.
- Se deberán respetar el nombre de las funciones así como el nombre de los parámetros.
- El nombre del resto de funciones será en inglés y deberán ser lo suficiente claras para poder identificarlas con facilidad.
- El código se comentará haciendo uso de los comentarios JavaDoc además, de comentarios normales para dar una explicación a la parte del código más importante.
- El repositorio de GitHub tendrá el siguiente nombre
pr05java-NOMBRE-console
siendo NOMBRE el nombre del alumno. - Se declarará aquellas variables que sean necesarias inicializándolas si es necesario, indicando el tipo correspondiente.
- Se hará uso de funciones y procedimientos donde sea oportuno.
- La entrega de este proyecto se realizará a través de un enlace a un repositorio de GitHub, realizando siempre más de un commit.
- Se valorará la limpieza, la claridad, y la estructura del proyecto.