Métodos y funciones en Java

Hola a todos, hoy os explicare como realizar métodos en Java, es una de las partes mas importantes en Java.

Los métodos en Java nos sirven para ejecutar instrucciones mediante unos parámetros que nosotros le damos (a veces, no es necesario incluir parámetros).

Los métodos se definen fuera del main, debemos de indicarle que es lo que queremos que  tipo de dato o referencia devuelva, ya sea un int, String, un objeto, un array, etc, después el nombre del método y por último los parámetros que utilizara el método, estos parámetros son los valores que le daremos desde el main. 

Esta es su sintaxis:

[Modificador de acceso] [Otros modificadores] Valor_retorno nombre_método (parámetros){
      instrucciones
}

Veamos un ejemplo de su definicion, recuerda que lo hacemos fuera del main:

public class PruebaApp {

	public static void main(String[] args) {

	}

	public static int sumaNumeros (int num1, int num2){

	}
}

Lo de public (o private) y static, no es importante que sepas lo que significan ahora, ya que lo veremos con más detalles cuando veamos la programación orientada a objetos. También hemos puesto que devuelva un int, cuando ponemos que devuelva un valor, debemos poner algún return con el tipo de valor que ponemos a devolver. En return podemos poner una fórmula o una variable. Sigamos con el ejemplo:

public class PruebaApp {

	public static void main(String[] args) {

	}

	public static int sumaNumeros (int num1, int num2){

		int resultado=num1+num2;
		return resultado;
	}
}

También podríamos escribir return num1+num2; no es estrictamente necesario colocar un return al final, aunque es lo más normal, cuando ejecuta la línea de código return, sale del método devolviendo el valor.

Ya tenemos el método, pero ahora debemos invocarlo en el main, ya que sino no serviría de nada. Para invocarlo, escribimos el nombre en el main y le pasamos los parámetros que necesite, no podemos ni quitarle ni añadirle mas de los que necesita, ya que sino dará un error en la compilación. Sigamos con el ejemplo:

public class PruebaApp {

	public static void main(String[] args) {

		int operador1=3;
		int operador2=5;
		sumaNumeros(operador1, operador2);
	}

	public static int sumaNumeros (int num1, int num2){

		int resultado=num1+num2;
		return resultado;
	}
}

Como vemos, no es necesario que el nombre de los parámetros del método (parámetros formales)  sean iguales a los parámetros con los que invocamos el método (parámetros actuales).

Solo nos falta un detalle, almacenar el resultado del método, ya que ahora mismo no estamos haciendo nada con él. Sigamos con el ejemplo:

public class PruebaApp {

	public static void main(String[] args) {

		int operador1=3;
		int operador2=5;
		int resultado=sumaNumeros(operador1, operador2);

		System.out.println("El resultado de la suma es "+resultado);
	}

	public static int sumaNumeros (int num1, int num2){

		int resultado=num1+num2;
		return resultado;
	}
}

Antes hemos comentado que no es necesario que devuelva un tipo de valor, puede no devolver nada, esto se suele usar cuando no necesitamos manejar algún valor calculado en el método. Por ejemplo, mostrar un mensaje. Al no devolver ningún valor, no debemos poner return y no es necesario almacenar el resultado del método como hemos visto antes.

Para indicar al método que no devuelva nada, en el valor devuelto escribimos void.  Veamos un ejemplo con el ejemplo anterior:

public class PruebaApp {

	public static void main(String[] args) {

		int operador1=3;
		int operador2=5;
		sumaNumeros(operador1, operador2);

	}

	public static void sumaNumeros (int num1, int num2){

		int resultado=num1+num2;
		System.out.println("El resultado de la suma es "+resultado);
	}
}

Por último, os quiero mostrar algo que debemos tener muy en cuenta, que nos suele pasar a todos al empezar.

Imaginemos que manejamos dentro del método una estructura condicional (como un if), si ponemos un return dentro de este if, seguramente nos salte un error, ya que debemos controlar que si no se introduce en el if debemos devolver algo.

Veamos un ejemplo, devolviendo un booleano, según sea positivo o negativo el resultado:

public class PruebaApp {

	public static void main(String[] args) {

		int operador1=3;
		int operador2=5;

		if (sumaNumeros(operador1, operador2)){
			System.out.println("El resultado es mayor que 0");
		}else{
			System.out.println("El resultado es menor que 0");
		}
	}

	public static boolean sumaNumeros (int num1, int num2){
		int resultado=num1+num2;
		if (resultado>=0){
			return true;
		}else{
			return false;
		}
	}
}

Podemos tener tantos métodos como queramos, lo más recomendable es usar métodos en acciones que repitamos mucho y queramos automatizar.

Espero que os sea de ayuda. Si tenéis dudas, preguntad, estamos para ayudarte.

Compartir

1 comentario

Deja una respuesta

Tu dirección de correo electrónico no será publicada.