jueves, 28 de noviembre de 2013

Funciones y métodos en Java

Hola nuevamente a todos los lectores del blog, en esta ocasión hablaremos de los métodos y funciones en Java. El concepto es muy simple, además es básico saberlo, no necesariamente la teoría, pero sí hay que entenderlo. Comencemos.

Una clase en Java tiene dos elementos principales: Los atributos (variables) y los métodos o funciones. Pero, ¿Qué son y cuál es la diferencia entre un método y una función? Vamos por partes:


Los métodos o funciones son simplemente un conjunto de instrucciones, y este conjunto de instrucciones lleva un nombre. Esto sirve cuando existe una serie de pasos que se repetirán en nuestro código, de esta manera escribimos menos código y se hace más eficiente. Veamos la estructura de un método:
void < nombre>(< lista_parámetros>){
// Código
}

Vamos a ver la parte práctica, y vamos por partes. Hemos dicho que un método es un conjunto de instrucciones que llevan un nombre. Ahora vemos algo nuevo, la lista de parámetros. Los parámetros son las variables que podemos darle al método para que haga uso de ellas en las instrucciones, son la entrada a los métodos. Por ejemplo, un método que sume dos números y muestre el resultado en pantalla. La entrada serían los dos números. Veamos el ejemplo:

void sumar(int a, int b){
    int suma = a + b;
    System.out.println("La suma es: " + suma);
}

Entonces hasta el momento sabemos que, recibe parámetros, agrupa instrucciones, le da un nombre. Ahora veamos la diferencia con una función: El retorno.

Una función devuelve un dato. Un método recibe una entrada, la procesa, y se acabó. La función recibe una entrada, la procesa, y devuelve un valor, el valor que devuelve se comporta como una variable (tiene un tipo definido: int, float, etc. o es un objeto de una clase). El tipo de dato que devuelve la función debe ser definido al momento de declararla, así:

int sumar(int a, int b){
    int suma = a + b;
    return suma;
}

Ahora vamos a ponerlo en práctica. Vamos a trabajar con el proyecto anterior, en el que hablamos de clases y objetos.

Los archivos están acá:
Main.java
Persona.java

Y el proyecto en Netbeans:
Tutorial_05_01

Lo que haremos es crear un método y una función en la clase Persona, de esta manera veremos cómo podemos "llamar" a los métodos o funciones.

La función que implementaremos será:

  • Recibirá un  "año" como parámetro (2013, 2014, 2010, etc, por lo tanto, un int).
  • Calculará la edad, de la persona.
  • Devolverá la edad.

Ahora transformemos estas instrucciones a código:
int calcularEdad(int añoActual){
    int edad = añoActual - añoNacimiento;
    return edad;
}

Este código irá dentro de la clase Persona. Como vemos, return es una palabra reservada de Java, que le indica qué valor devolverá la función. Obviamente, este valor debe ser del mismo tipo que hemos declarado en la función, en este caso, int.

Ahora vamos a crear un método, éste método imprimirá en pantalla los datos de la persona, es decir, lo que teníamos en el Main.java, el método tendrá entonces el siguiente código:
void mostrarDatos(){
    System.out.println("Nombre de la persona: " + nombre);
    System.out.println("Año de Nacimiento: " + añoNacimiento);
}

Listo, tenemos nuestra clase Persona modificada, hemos agregado la función calcularEdad, y el método mostrarDatos. Ahora vamos a hacer uso de ellos en la clase Main. Como hemos puesto el código para mostrar los datos en la clase persona, lo quitaremos del Main, quedándo el main así:

Persona objPersona;
objPersona = new Persona();
        
objPersona.nombre = "Edder Sánchez";
objPersona.añoNacimiento = 1992;

Y ahora vamos a obtener la edad de la persona. ¿Cómo?. Pues llamando a la función calcularEdad. Como esta función nos devuelve la edad, debemos almacenarla en una variable, y luego la mostraremos por pantalla.

Para invocar a una función lo hacemos igual que con los atributos, con el nombre del objeto Persona (objPersona) seguido de un punto (.) y luego el nombre del método o función, en nuestro caso será así:

objPersona.calcularEdad(2013);

Como vemos, 2013 es el entero (int) que necesita la función como parámetro. Como decíamos, esto nos devuelve un valor entero, y debemos almacenarlo, por lo tanto crearemos la variable edad, y le asignaremos el valor devuelto, esto se hace así:

int edad;
edad = objPersona.calcularEdad(2013);

Listo!. Ahora podemos mostrar la edad por pantalla, y además, podemos mostrar los datos de la persona, llamando al método correspondiente. Nuestro código quedaría de la siguiente manera:

System.out.println("Edad: " + edad); //Mostrando  la edad
objPersona.mostrarDatos(); //Mostrando los datos

Al ejecutar el código, resulta esto:

Esto es todo sobre métodos y funciones, queda mucho, realmente mucho por aprender sobre este tema, pero iremos despacio para no hacer muy larga la entrada.

Hasta el momento no hemos incluido consejos de buenas prácticas de programación, puesto que faltan muchos conceptos. al terminar con los conceptos básicos, haré una entrada de resumen, así como también subiremos un vídeo tutorial.

Dejaré por acá los archivos ya editados:
Main.java
Persona.java

Y el proyecto en Netbeans:
Tutorial_05_02

Sin más que decir, me despido haciéndoles recordar que si tienen alguna duda por favor comentar, y si hay alguna crítica o corrección también será bienvenido. Hasta la próxima.

No hay comentarios:

Publicar un comentario