¿Para qué se utiliza void y return en Java?

¿Para qué se utiliza void y return en Java?


En esta ocasión, te voy a explicar para qué sirve void y return en Java, dos cosas que están bien ligadas.

¿Qué es return o los valores de retorno en Java?

Tanto en Java como en la mayoría de lenguajes de programación, la palabra return se usa para devolver un valor desde un método al programa. Por ejemplo, cuando llamas a un método para que haga algo, puedes utilizar return para decirle que te devuelva el resultado de lo que hizo.

En este caso, no vamos a imprimir en la consola el valor, sino que lo obtenemos en el programa, para después usarlo en algo.

Voy a escribir un ejemplo para que te quede más claro.

La clase SumaNumeros, tiene un método para sumar dos valores de tipo int.

Entonces, en la clase Main, creo un objeto de tipo SumaNumeros para poder usar su método suma.

Con este objeto, utilizo la llamada al método con los valores 10 y 7. El println() que tiene el método en la línea 5, hace que el valor 17 se imprima en la consola (u otro valor si le pasamos otros números).

class SumaNumeros {
  	int resultado;
    // Método de suma con dos valores
    public void suma(int a, int b) {
    	resultado = a + b; // Se realiza el cálculo
        System.out.println(resultado); // Se imprime el resultado
    }
}

class Main {
    public static void main(String[] args) {
        // Objeto de tipo SumaNumeros
        SumaNumeros suma1 = new SumaNumeros();
        // Llamada al método suma con dos números
        suma1.suma(10, 7);
    }
}

Una cosa que podríamos hacer para guardar el valor en el programa, es almacenar la llamada del método suma en una variable:

class Main {
    public static void main(String[] args) {
        // Objeto de tipo suma
        SumaNumeros suma1 = new SumaNumeros();
        // Llamada al método suma con dos números
        int resultado = suma1.suma(10, 7);
        // Hacemos una nueva suma con el valor obtenido de la anterior
        suma1.suma(resultado, 10);
    }
}

Y de nuevo, error:

Error en la consola

java: incompatible types: void cannot be converted to int

El valor que se almacena en resultado, es de tipo void, en lugar de un int (17).

Esto se debe al void que tiene el método suma:

public void suma(int a, int b) { }

Ahora explicaré la palabra void.

En estos casos, debemos quitar la palabra void y poner el tipo de dato que esperamos que devuelva la llamada al método. Además, reemplazaremos el println() que es un elemento de salida que no conserva el dato dentro del programa y en su lugar, dejaremos un return, que devolverá el resultado al hacer la llamada.


Esta devolución, la capturaremos con una variable.

class SumaNumeros {
    // Método de suma con dos valores
    public int suma(int a, int b) {
        int resultado = a + b; // Se realiza el cálculo
        return resultado; // Se devuelve el resultado
    }
}

class Main {
    public static void main(String[] args) {
        // Objeto de tipo suma
        SumaNumeros suma1 = new SumaNumeros();
        // Llamada al método suma con dos números
        int resultado = suma1.suma(10, 7);
        // Imprimimos el resultado
        System.out.println(resultado);
        // Hacemos una nueva suma con el valor obtenido de la anterior
        resultado = suma1.suma(resultado, 10);
        // Imprimimos el nuevo resultado
        System.out.println(resultado);
    }
}

Si utilizas IntelliJ IDEA, verás que aparece un warning:

Warning

Local variable 'resultado' is redundant

Este warning dice que la variable local 'resultado' es redundante, es decir, que sobra.

Podemos realizar la operación directamente sobre un return:

class SumaNumeros {
    // Método de suma con dos valores
    public int suma(int a, int b) {
        return a + b; // Se devuelve el resultado
    }
}

¿Qué es void?

La palabra reservada void de Java, se utiliza para indicar que un método no tiene return (valor de retorno).

Este método es un ejemplo de ello. Como no necesitamos reutilizar el resultado del println(), lo podemos dejar como void y sin return, para que no devuelva nada, solo que haga lo que tiene que hacer, que en este caso, es imprimir en la consola.

class Usuario {
    public void saludo() {
        System.out.println("¡Hola!");
    }
}

Dejamos el capítulo aquí. Seguimos con nuevos temas en el próximo.

Todo el temario del curso Java aquí.


2 comentarios en «0»

Deja una respuesta

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

logo css Entrada anterior ¿Qué es CSS y por qué usarlo?
logo css Entrada siguiente ¿Dónde se escribe CSS junto a HTML?