Ejercicio resuelto: métodos que reciben y retornan valores en Java

En este momento estás viendo Ejercicio resuelto: métodos que reciben y retornan valores en Java

Actualizado en septiembre de 2026. Se corrigió el método de la división, que sumaba en lugar de dividir.

En este ejercicio escribirás cuatro métodos en Java que reciben dos números y retornan un resultado, los llamarás desde main y comprobarás la salida.

Enunciado del ejercicio

Escribir en Java cuatro métodos que reciban como argumento dos números y que cada método calcule la suma, la resta, la multiplicación y la división y retornen sus resultados.

Cómo se resuelve

La solución usa una sola clase, OperacionesAritmeticas, con cuatro métodos que reciben dos números enteros como parámetros y retornan el resultado de su operación con return.

Un quinto método, imprimirResultados, recibe los resultados y los muestra en pantalla, pero no devuelve nada: por eso se declara void.

El método main pide los dos números por teclado, crea un objeto de la clase, llama a los métodos y guarda en variables lo que cada uno retorna.

Definición

Método que retorna un valor: declara el tipo de dato que devuelve, por ejemplo int o double, y lo entrega con return. Método void: hace su trabajo, pero no devuelve nada.

Código completo

Este es el programa completo. Lo compilamos y lo ejecutamos con Java 25 y Java 26 para comprobar cada resultado.

import java.util.Scanner;

public class OperacionesAritmeticas {

    // Recibe dos enteros y retorna su suma
    public int sumar(int numero1, int numero2) {
        int suma = numero1 + numero2;
        return suma;
    }

    // Recibe dos enteros y retorna su resta
    public int restar(int numero1, int numero2) {
        int resta = numero1 - numero2;
        return resta;
    }

    // Recibe dos enteros y retorna su multiplicación
    public int multiplicar(int numero1, int numero2) {
        int multiplicacion = numero1 * numero2;
        return multiplicacion;
    }

    // Recibe dos enteros y retorna su división con decimales
    public double dividir(int numero1, int numero2) {
        double division = (double) numero1 / numero2;
        return division;
    }

    // Recibe los resultados y los muestra: no retorna nada (void)
    public void imprimirResultados(int suma, int resta, int multiplicacion) {
        System.out.println("La suma es: " + suma);
        System.out.println("La resta es: " + resta);
        System.out.println("La multiplicación es: " + multiplicacion);
    }

    public static void main(String[] args) {
        Scanner teclado = new Scanner(System.in);

        System.out.print("Ingrese el número 1: ");
        int n1 = teclado.nextInt();
        System.out.print("Ingrese el número 2: ");
        int n2 = teclado.nextInt();

        OperacionesAritmeticas operaciones = new OperacionesAritmeticas();

        int suma = operaciones.sumar(n1, n2);
        int resta = operaciones.restar(n1, n2);
        int multiplicacion = operaciones.multiplicar(n1, n2);

        operaciones.imprimirResultados(suma, resta, multiplicacion);

        if (n2 != 0) {
            double division = operaciones.dividir(n1, n2);
            System.out.println("La división es: " + division);
        } else {
            System.out.println("La división no se puede hacer: el número 2 es cero.");
        }
    }
}

Qué hace cada método

Los cuatro métodos de cálculo reciben dos números y retornan un resultado:

MétodoRecibeRetorna
sumarDos intint: la suma
restarDos intint: la resta
multiplicarDos intint: la multiplicación
dividirDos intdouble: la división

El quinto método, imprimirResultados, recibe tres int y no retorna nada: se declara void.

Cómo se llaman desde main

Los métodos no son static, así que main los usa a través de un objeto de la clase:

  1. Se crea el objeto con new: OperacionesAritmeticas operaciones = new OperacionesAritmeticas();
  2. Se llama a cada método con un punto y se le pasan los dos números: operaciones.sumar(n1, n2).
  3. Lo que el método retorna se guarda en una variable del mismo tipo: int suma = operaciones.sumar(n1, n2);. Para la división, la variable es double.

imprimirResultados no retorna nada, así que se llama sin guardar su resultado en ninguna variable.

Ejemplo de ejecución

Si escribes 7 y 2, el programa muestra:

Ingrese el número 1: 7
Ingrese el número 2: 2
La suma es: 9
La resta es: 5
La multiplicación es: 14
La división es: 3.5

Con otros números:

NúmerosSuma, resta y multiplicaciónDivisión
10 y 212, 8 y 205.0
7 y 07, 7 y 0Muestra un aviso

Con 7 y 0, en lugar de dividir, el programa escribe: «La división no se puede hacer: el número 2 es cero.»

Por qué la división retorna double

Si dividir retornara int, 7 entre 2 daría 3: en Java, la división entre dos enteros descarta la parte decimal.

Por eso el método retorna double y convierte el primer número antes de dividir: (double) numero1 / numero2 da 3.5.

Con enteros, dividir entre cero detiene el programa con un error (ArithmeticException); con double, el resultado sería Infinity. Por eso main comprueba antes que el segundo número no sea cero.

Qué estaba mal en la versión anterior

Error frecuente

Copiar el cuerpo de un método para crear el siguiente y olvidar cambiar la operación.

La versión anterior de este ejercicio tenía ese error en el método de la división: int dividir = numero1 + numero2;. El programa compilaba, pero sumaba en lugar de dividir.

Se detecta probando con números cuyo resultado ya conoces: 30 entre 15 debería dar 2, y aquel programa mostraba 45.

El mismo ejercicio en Python

Si también estudias Python, en este ejercicio de definiciones en Python se resuelven las mismas operaciones con funciones que usan return.

Fuentes

Otros ejercicios

Diego Lozano

Comparto tutoriales y guías paso a paso sobre inteligencia artificial práctica, automatización y herramientas digitales para trabajar y estudiar mejor.

Deja una respuesta