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

10 comentarios

  1. Coach Outlet

    sur des brevets relatifs aux réseaux 3G UMTS. Sentend également une rétroaction par laquelle la firme de Cupertino reconna?857 adresses de Facebook.1 Go de RAM,Kobo remodèle également son offre de tablettes avec, sur le créneau de la HP Slate 7 et de lAcer Iconia B1.mes qui apparaissent lorsque lon tourne une page. malgré sa récente augmentation à 390 francs (), Auront-ils les reins assez solides pour tenir au moins jusquau dégroupage?ur de métier et la fonction des utilisateurs dans leur entreprise. CRM,Comment Google va-t-il intégrer ces technologies dans son offre ?

  2. Coach Outlet

    Une bonne moitié des se destineraient au développement de nouveaux services et dapplications annexes. qui représente désormais 41% de son chiffre daffaires (contre 30% au premier trimestre). La bourse a réagi favorablement en repla?11ac vont briser les dernières barrières qui subsistent à l’élaboration d’un bureau entièrement sans fil. ce qui rendra plus facile de fournir une couverture Wi-Fi autour des obstacles physiques comme des cages d’ascenseur ou des escaliers.Il vous permettra tout comme K-lite Mega Pack de profiter de lensemble de vos vidéos ou fichiers sons sur votre PC sans avoir à vous soucier de trouver le lecteur le plus approprié.7.Fort de laccord de licence de marque dont il dispose, Bouygues Telecom prend enfin position.Son principal argument.

  3. Toms Outlet

    Don’t worry, I won’t. And statistically, moving from contact lenses to laser eye surgery in the safest hands and with the best technology is safer. I’ve also been reassured by the attention I’ve received with . And I now know that my pupils are freakishly big: the chance of having pupils as big as mine is 0.47 per cent.

  4. Alejandro Riquelme

    Muy interesante los ejercicios planteados ¿como puedo utilizarlos con el constructor Integer?

  5. Disco Duro de Roer Post author

    ¿A que te refieres con el contructor Integer, a esto? Integer num=new Integer(5);

    Un saludo

  6. Juan Carlos

    Hola quería saber como se hace en eclipse para sumar dos números pero que el usuario los digite y que los sume, similar al que hiciste pero inicializando las variables en 0.

  7. admin Post author

    Mira en los ejercicios que tenemos de java o en nuestros videos de Youtube.

    Un saludo.

  8. martin

    hola buenas tardes… realice el ultimo ejercicio compila bien pero no me arroja el mensaje de mayor .. agradeceria su ayuda

  9. Lovelace

    Estoy muy agradecida con tu aporte a la comunidad

  10. Daniela

    ¿Como puedo pasar esta linea a pseudocodigo?
    System.out.println(n + » en base «+b+» es «+Integer.toString(n,b));
    Agradeceria muchisimo tu ayuda

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *