Download Métodos que devuelven valores

Document related concepts
no text concepts found
Transcript
•
Métodos que devuelven valor
Dado el siguiente triángulo rectángulo:
hipotenusa
altura
base
Para dibujar este triángulo necesitamos los siguientes datos: base y altura
La base y la altura, se utilizarán como parámetros para dibujar el triangulo
rectángulo. (Terminar de dibujar el triangulo rectángulo)
Considerando la base y la altura del triangulo rectángulo, se puede calcular el
área del triángulo y la formula es la siguiente:
Calculo del área. En todo triángulo, se verifica que el área esta dada por el
semiproducto de la base por la altura del triangulo. Esta formula del área es muy
familiar y sencilla de aplicar, y puede usarse en triángulos rectángulos en función de
sus catetos adyacentes al ángulo recto, pues uno de ellos se toma como base y el otro
como altura.
El método deberá retornar el valor calculado (área). Entonces, debemos implementar un
método que devuelve valor en la clase RobotRecolector.
Considerando el formato de definición de un Método
<tipo-de-valor-devuelto> <nombre-método> (<lista-parámetros>){
<sentencias-del-cuerpo-del-método>
}
Vamos a analizar nuestro método: En <tipo-de-valor-devuelto> definimos el tipo de
valor1 que queremos que nuestro método devuelva, en este caso int (tipo entero), en
<nombre-método> definimos el nombre del método, en (<lista-parámetros>)
definimos dos parámetros (base y altura) de tipo entero y en <sentencias-del-cuerpodel-método> implementamos la formula dada para calcular el área. Una vez que se
calcula la fórmula, se tiene que devolver el resultado del mismo al lugar desde donde se
invocó al método. Para eso vamos a utilizar la palabra reservada de Java return y la
expresión que queremos que devuelva, en este caso return area;
Constante: Las constantes en Java son como las variables, pero su valor no se altera
durante la ejecución del programa. Se las preceden con el adjetivo final. Por
convención, las constantes se escriben en mayúsculas. Ejemplo: final int DIV = 2;
Otros ejemplos de constantes: Meses de un año, PI, días de la semana, etc.
1
Cualquier tipo primitivo o tipo referenciado
Finalmente en nuestro archivo MiPrograma podemos invocar el método
La expresión que se
retornó se guarda en
la variable área
invocar el método
Error común de programación:
Olvidar devolver un valor de un método que debe devolver un valor es un error de
sintaxis. Si se especifica un tipo de valor de retorno que no sea void, el método debe
contener una instrucción return que devuelva un valor del tipo de valor de retorno del
método. De manera similar, devolver un valor de un método cuyo tipo de valor de
retorno se haya declarado void es un error de sintaxis.
Importante considerar: hay tres formas de devolver el control al punto en el que se
invocó un método. Si el método no devuelve un resultado, el control se devuelve
simplemente cuando se llega a la llave derecha ( } ) que termina el método, o al ejecutar
el enunciado: return;
Si el método devuelve un resultado, el enunciado: return expresión; devuelve el valor
de expresión.
Sobrecarga de Métodos
Lenguajes como Java permiten que existan distintos métodos con el mismo nombre
siempre y cuando estos métodos tengan distintos conjuntos de parámetros (los cuales se
determinan mediante el número y los tipos de los parámetros). Esta técnica se conoce
como sobrecarga de métodos.
La sobrecarga de métodos se utiliza comúnmente para crear varios métodos con el
mismo nombre que realizan tareas similares, pero con tipos de datos distintos.
Ejemplo: sobrecarga de métodos
En el primer método no se especifica la cantidad de conos a quitar, sino que quita conos
mientras hayCono. En el segundo método sí se le especifica la cantidad de conos que se
va a quitar, (cantConos).
Los métodos sobrecargados se distinguen por su firma: La firma es una
combinación del nombre del método, el número y tipo de sus parámetros.
Si el compilador de Java analizara solamente los nombres de los métodos durante la
compilación, el código que se describe en el ejemplo anterior sería ambiguo; el
compilador no sabría cómo distinguir entre los dos métodos quitarConos. El
compilador utiliza nombres más largos “deformados” o “decorados”, que incluyen el
nombre original del método, los tipos de cada parámetro y el orden exacto de los
parámetros, para determinar si los métodos en una clase son únicos en esa clase.
De todas formas no es conviene abusar demasiado de esta prestación del lenguaje,
porque resulta propensa a errores (en ocasiones, creeremos estar llamando a una versión
de un método cuando la que se ejecuta en realidad es otra).
Nota: En la creación de constructores sí es importante disponer de esta
característica (esto lo vamos a ver más adelante)
Resumen
La mejor manera de desarrollar y mantener un programa extenso es dividirlo en varios
módulos pequeños. En Java los módulos se escriben como clase y métodos
Definir un método dentro de otro método es un error de sintaxis
En general, un método no debe ocupar más de una página. Los métodos deben realizar
una sola tarea bien definida.
Los programas deben escribirse como colecciones de métodos pequeños. Esto facilita la
escritura, depuración, mantenimiento y modificación de los programas.
Cuestión de estilo
Escribimos código para que lo puedan leer otras personas, no sólo para que lo traduzca
el compilador.
Identificadores
Los identificadores deben ser descriptivos, deben dar una idea clara de lo que
representan o simbolizan.
Por ejemplo: p, i, s... NO; precio, izquierda, suma... SI
En ocasiones, se permite el uso de nombres cortos para variables locales cuyo
significado es evidente.
Se considera inapropiado incluir literales de tipo numérico (números mágicos) en el
medio del código. Se prefiere la definición de variables o constantes simbólicas.
Comentarios:
Comentarios descriptivos: Los comentarios deben comunicar algo. Jamás se utilizarán
para “frasear” el código y repetir lo que es obvio.
El código bien escrito es más fácil de leer, entender y mantener (además, seguramente
tiene menos errores)