martes, 3 de abril de 2012

Métodos

Buenas amigos, ya hemos visto bastantes cosas de lo que sería lo más básico de JAVA, en este nuevo tema, vamos a profundizar un poco más en lo que a JAVA respecta, y vamos a explicar lo que son los métodos.

Bien, un MÉTODO es un grupo de sentencias que realizan una tarea concreta.En lugar de reescribir todo el código, simplemente haremos una referencia al MÉTODO que nos haga falta en cada momento.Estos pueden mandar o recibir información del programa principal.
Hay 2 tipos de MÉTODOS:
  1. Los que no devuelven ningún valor, los cuales serán dominados PROCEDIMIENTOS y su formato es el siguiente:
    • public void nombreMetodo (){
    • .......Instrucciones......
    • }
  2. Los que devuelven un valor, los cuales serán denominados FUNCIONES y su formato es el siguiente:
    • public TipoDato nombreMetodo(... Parámetros...){
    • return TipoDato;
    • }
Una cosa más que agregar son los PARÁMETROS. Un MÉTODO puede o no llevar PARÁMETROS, estos no son más que algún tipo de dato que se pide para que el MÉTODO pueda funcionar.Cuando un MÉTODO es llamado y tiene PARÁMETROS se deben introducir el mismo número de PARÁMETROS , del mismo tipo que pide el MÉTODO y en el mismo orden.

Las variables declaradas dentro de un MÉTODO son denominadas variables LOCALES y solo se pueden usar dentro de ese MÉTODO, una vez finaliza el MÉTODO el valor de esas variables se pierde.


Bueno, pongamos un ejemplo de cada uno para entenderlo mejor:

PROCEDIMIENTO (sin PARÁMETROS):

Como podéis observar, he creado 2 MÉTODOS, uno para que nos pida un número por consola y almacenarlo en una variable de tipo int, y otro para que nos lo imprima por pantalla.

Una de las grandes diferencias que tenemos, es que ya no escribimos el código en la MAIN, estos se escriben en los MÉTODOS los cuales tienen que ir antes de la MAIN. Si os fijáis bien, nos es más rápido y cómodo escribir las 3 lineas de código que tenemos entre los 2 MÉTODOS que hacer todo lo que hemos hecho, pero en programas más complejos que se necesite estar pidiendo números cada cierto tiempo, ya que solamente tendríamos que llamar al MÉTODO para que lo haga, sin tener que estar repitiendo el código.

Otra de las cosas importantes es la MAIN, ahora está más limpia, lo cual será una ventaja en el futuro. Para llamar al MÉTODO dentro de la MAIN, tenemos que crear un OBJETO de la clase que hemos creado "Procedimiento", en este caso el OBJETO de la clase "Procedimiento", se llama "p", y posteriormente le indicamos a la MAIN que llame al MÉTODO "ingresarEntero()" del OBJETO "p", que no es más que la referencia a la clase "Procedimiento". De esta manera, la MAIN se irá a la clase "Procedimiento" y buscará el MÉTODO "ingresarEntero()" y una vez encontrado, ejecuta el código en su interior. Una vez ejecutado el código, la MAIN pasará a la siguiente linea de código, y buscará en la clase "Procedimiento" el MÉTODO "imprimirEntero()", y lo ejecutará, una vez ejecutado, a la MAIN no le queda más código por ejecutar, por lo que finaliza.

PROCEDIMIENTO (con PARÁMETROS):

Cosas que han cambiado respecto al ejemplo anterior:
      • La variable de tipo int para almacenar números por teclado, cambia de nombre y se denomina numIntroducido, tambien pasa a ser static que en temas posteriores explicaremos lo que es.
      • El MÉTODO "imprimirEntero", pasa a tener un PARÁMETRO, (int numero).
Vemos que en la instrucción del MÉTODO "imprimirEntero(int numero)", imprimimos por pantalla el PARÁMETRO, posteriormente en la MAIN a la hora de llamar al MÉTODO "imprimirEntero(int numero)" le pasamos la variable numIntroducido, que es la que tiene almacenado el valor introducido por teclado, aquí ya sabéis lo que hace JAVA, se va a la clase "Procedimiento" y busca el MÉTODO, una vez encontrado, JAVA sustituye el PARÁMETRO (int numero) por la variable que le pasamos en la llamada del MÉTODO, en este caso "numIntroducido", imprimiendonos por pantalla el valor de la variable "numIntroducido". Si no le pasamos un PARÁMETRO a un MÉTODO, el cual si tiene, el programa no funcionará en ningún caso.

FUNCIÓN (con PARÁMETRO):

Cambios visibles con respecto a un PROCEDIMIENTO:

  1. Mientras que para declarar un PROCEDIMIENTO se declaraba la palabra clave "void", para una FUNCIÓN que devuelve un valor se utiliza el tipo de dato que nos va a devolver (int, float, String, boolean...).
  2. Una FUNCIÓN necesita tener un tipo de retorno, para que nos devuelva un valor, para ello utilizamos la clausula "return", que nos devolverá el valor.
Bien, creamos la clase "Funcion", posteriormente y antes que la MAIN, creamos nuestra FUNCIÓN, que en nuestro caso hallará el área de un rectángulo (el área de un rectángulo se calcula multiplicando la base por la altura, para quien no lo sepa), y nos retornará el resultado de multiplicar b*a

Ya dentro de la MAIN, creamos 2 variables de tipo entero:
        • int base=10;
        • int altura=5;
Creamos un OBJETO llamado "f" de la clase "Funcion":
        • Funcion f =new Funcion();
Creamos una variable de tipo int llamada "area", y le asignamos el resultado de la FUNCIÓN:
        • int area=f.areaRectangulo(base,altura);
La FUNCIÓN tiene 2 PARÁMETROS los cuales son 2 números de tipo entero, así que cuando llamamos a la FUNCIÓN debemos de pasarle 2 números enteros, los cuales tenemos asignados a las 2 variables anteriores, "base" y "altura".

Posteriormente y para finalizar, mostramos por pantalla el resultado de la variable "area":
        • System.out.pirntln("El área del rectángulo es: "+area);
Bien, hasta aquí voy a alargar el post, no voy a explicar las FUNCIONES sin PARÁMETROS ya que lo más común es usarlas con PARÁMETROS, pero bueno, ya veremos algún caso en temas posteriores. No sufráis mucho pues los MÉTODOS en general lo iremos utilizando mucho y poco a poco iréis entendiendo mejor su funcionamiento, descubriendo realmente que son maravillosos e indispensables para programar. En el próximo post hablaremos de las CLASES y los OBJETOS.

Un saludo.

4 comentarios: