Ejemplo 1 - Definición e invocación de métodos

Objetivo

Comprender la forma de llevar a cabo la definición e invocación a métodos

Enunciado

Este ejemplo muestra la forma de definir e invocar tanto un método simple como un método estático que hace exactamente lo mismo con el fín de comprender la forma de definir y ejecutar ambos tipos de método. El método que se deberá crear tanto en versión simple como estática será un método para una clase llamada Calculadora. El método se llamará promedio y será un método que recibe dos parámetros con números reales y devuelve el valor del promedio de ambos en un número real. Se deberá crear una clase de pruebas para cada Clase creada.

Solución

¿Cómo es la mecánica de invocación a un método?

Note que la ejecución del programa pasa de punto donde se invoca el método al método invocado. Los valores 1.2 y 9.4 son copiados hacia los parámetros valorA y valorB del método promedio. Estos parámetros son creados temporalmente en la pila y serán destruidos al terminar el método. En la variable local respuesta se guarda la suma de ambos parámetros dividida entre dos (cálculo del promedio). Cuando el método termina devuelve con la instrucción return el valor que está en la variable local respuesta hacia el punto de invocación al método. Ese valor es entonces almacendado en la variable promedio del método principal de la OtraClase que fue la que invocó a promedio. Note que para invocar al método se necesitó primero crear una instancia de calculadora.


¿Cómo se crea un método estático en Java?

Para crear un método estático en Java se debe incluir la palabra reservada static previo al tipo del método. En el siguiente código note la diferencia en la declaración del método promedio. Note que la clase ahora es la clase Calculadora2.

Calculadora2.java

class Calculadora2{
// Note la palabra static en el siguiente
// encabezado
public static double promedio( double valorA, double valorB ){
// Variable local
double respuesta = 0;
respuesta = ( valorA + valorB ) / 2.0;
// Devuelve el valor calculado
return (respuesta);
}
}

¿Cómo se invoca un método estático en Java?

Note que se está invocando al método promedio() asociándolo al nombre de la clase Calculadora2 en lugar de utilizar una instancia de Calculadora2.
En ningún momento se utilizó "new Calculadora2" para crear una instancia sin embargo el método estático estaba disponible luego de cargar la clase a memoria.

El llamado con la instancia referenciada por "calc" era de la forma:

Calculadora calc = new Calculadora();

promedio = calc.promedio(1.2,9.4);

El llamado de un método estático solo involucra a la clase y se ve como el que sigue:

promedio = Calculadora2.promedio(1.2 , 9.4);


PruebaCalculadora2.java

public class PruebaCalculadora2 {

public static void main(String argv[]){

double promedio = 0;
promedio = Calculadora.promedio(1.2, 9.4);

System.out.println("Promedio: "+promedio);

System.exit(0);

}

}

La salida es la siguiente

Código Fuente