Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/Jhaymayleth/unidad2_java/llms.txt

Use this file to discover all available pages before exploring further.

The Utilidades class is a pure utility class — all methods are static, and a private constructor prevents any caller from creating an instance. This pattern groups related mathematical operations under one namespace while making it crystal-clear that the class carries no per-object state. Any code in the project can call Utilidades.suma(...) or Utilidades.factorial(...) without first constructing an object.

PRECISION Constant

public static final double PRECISION = 1e-10;
PRECISION is used internally by dividir() to detect a near-zero divisor with Math.abs(divisor) < PRECISION, guarding against floating-point representations of zero.

Static Methods

SignatureReturnsDescription
suma(double a, double b)doubleReturns a + b
resta(double a, double b)doubleReturns a - b
multiplicar(double a, double b)doubleReturns a * b
dividir(double dividendo, double divisor)doubleReturns dividendo / divisor; prints an error and returns 0 when divisor is effectively zero
potencia(double base, double exponente)doubleReturns Math.pow(base, exponente)
raizCuadrada(double numero)doubleReturns Math.sqrt(numero); prints an error and returns -1 for negative input
valorAbsoluto(double numero)doubleReturns Math.abs(numero)
maximo(double a, double b)doubleReturns the larger of a and b via Math.max()
minimo(double a, double b)doubleReturns the smaller of a and b via Math.min()
redondear(double numero, int decimales)doubleRounds numero to the specified number of decimal places
promedio(double... numeros)doubleVarargs average; returns 0 for an empty argument list
esPar(int numero)booleanReturns true if numero % 2 == 0
esPrimo(int numero)booleanReturns true if numero has no divisors between 2 and √numero
factorial(int numero)longIterative factorial; returns 1 for 0 and 1; prints an error and returns -1 for negative input

Full Source — Utilidades.java

package Taller7.ejercicio_3;

/**
 * Clase Utilidades que proporciona métodos públicos estáticos
 * para realizar operaciones matemáticas básicas y avanzadas
 *
 * Esta clase es un ejemplo de método de utilidad pública (Utility Class)
 * que agrupa funcionalidades que pueden ser usadas desde cualquier lugar
 */
public class Utilidades {

    // Constante pública para precisión decimal
    public static final double PRECISION = 1e-10;

    // Nota: No instanciamos Utilidades, solo usamos métodos estáticos
    private Utilidades() {
        // Evita que se cree instancia de esta clase
    }

    /**
     * Método público estático para sumar dos números
     * @param a Primer número
     * @param b Segundo número
     * @return La suma de a + b
     */
    public static double suma(double a, double b) {
        return a + b;
    }

    /**
     * Método público estático para restar dos números
     * @param a Minuendo
     * @param b Sustraendo
     * @return La resta de a - b
     */
    public static double resta(double a, double b) {
        return a - b;
    }

    /**
     * Método público estático para multiplicar dos números
     * @param a Primer factor
     * @param b Segundo factor
     * @return El producto de a * b
     */
    public static double multiplicar(double a, double b) {
        return a * b;
    }

    /**
     * Método público estático para dividir dos números
     * ✅ Incluye validación: no permite división por cero
     * @param dividendo El número a dividir
     * @param divisor El número que divide
     * @return El resultado de dividendo / divisor
     */
    public static double dividir(double dividendo, double divisor) {
        if (Math.abs(divisor) < PRECISION) {
            System.out.println("❌ Error: No se puede dividir por cero.");
            return 0;
        }
        return dividendo / divisor;
    }

    /**
     * Método público estático para calcular potencia
     * @param base La base
     * @param exponente El exponente
     * @return base elevado a la potencia exponente
     */
    public static double potencia(double base, double exponente) {
        return Math.pow(base, exponente);
    }

    /**
     * Método público estático para calcular raíz cuadrada
     * ✅ Incluye validación: no permite raíz de negativos
     * @param numero El número
     * @return La raíz cuadrada de número
     */
    public static double raizCuadrada(double numero) {
        if (numero < 0) {
            System.out.println("❌ Error: No se puede calcular raíz de número negativo.");
            return -1;
        }
        return Math.sqrt(numero);
    }

    /**
     * Método público estático para calcular valor absoluto
     * @param numero El número
     * @return El valor absoluto de número
     */
    public static double valorAbsoluto(double numero) {
        return Math.abs(numero);
    }

    /**
     * Método público estático para encontrar el máximo entre dos números
     * @param a Primer número
     * @param b Segundo número
     * @return El mayor de los dos números
     */
    public static double maximo(double a, double b) {
        return Math.max(a, b);
    }

    /**
     * Método público estático para encontrar el mínimo entre dos números
     * @param a Primer número
     * @param b Segundo número
     * @return El menor de los dos números
     */
    public static double minimo(double a, double b) {
        return Math.min(a, b);
    }

    /**
     * Método público estático para redondear un número
     * @param numero El número a redondear
     * @param decimales Número de decimales
     * @return El número redondeado
     */
    public static double redondear(double numero, int decimales) {
        double factor = Math.pow(10, decimales);
        return Math.round(numero * factor) / factor;
    }

    /**
     * Método público estático para calcular el promedio de números
     * @param numeros Variable cantidad de números
     * @return El promedio
     */
    public static double promedio(double... numeros) {
        if (numeros.length == 0) {
            return 0;
        }
        double suma = 0;
        for (double num : numeros) {
            suma += num;
        }
        return suma / numeros.length;
    }

    /**
     * Método público estático para verificar si un número es par
     * @param numero El número
     * @return true si es par, false si es impar
     */
    public static boolean esPar(int numero) {
        return numero % 2 == 0;
    }

    /**
     * Método público estático para verificar si un número es primo
     * @param numero El número
     * @return true si es primo, false si no lo es
     */
    public static boolean esPrimo(int numero) {
        if (numero < 2) {
            return false;
        }
        for (int i = 2; i <= Math.sqrt(numero); i++) {
            if (numero % i == 0) {
                return false;
            }
        }
        return true;
    }

    /**
     * Método público estático para calcular factorial
     * @param numero El número
     * @return El factorial de número
     */
    public static long factorial(int numero) {
        if (numero < 0) {
            System.out.println("❌ Error: No se puede calcular factorial de negativo.");
            return -1;
        }
        if (numero == 0 || numero == 1) {
            return 1;
        }
        long resultado = 1;
        for (int i = 2; i <= numero; i++) {
            resultado *= i;
        }
        return resultado;
    }
}

Usage Example — PruebaEjercicio3.java

All methods are called directly on the class name — no new Utilidades() is needed or possible.
// Basic arithmetic
double a = 20.0, b = 5.0;
System.out.println(Utilidades.suma(a, b));           // 25.0
System.out.println(Utilidades.resta(a, b));          // 15.0
System.out.println(Utilidades.multiplicar(a, b));    // 100.0
System.out.println(Utilidades.dividir(a, b));        // 4.0

// Advanced math
System.out.println(Utilidades.potencia(2, 5));       // 32.0
System.out.println(Utilidades.raizCuadrada(16));     // 4.0
System.out.println(Utilidades.valorAbsoluto(-15));   // 15.0
System.out.println(Utilidades.maximo(10, 25));       // 25.0
System.out.println(Utilidades.minimo(10, 25));       // 10.0

// Guard rails
Utilidades.dividir(10, 0);          // ❌ Error: No se puede dividir por cero.
Utilidades.raizCuadrada(-9);        // ❌ Error: No se puede calcular raíz de número negativo.

// Rounding and statistics
System.out.println(Utilidades.redondear(3.14159265359, 2));        // 3.14
System.out.println(Utilidades.redondear(3.14159265359, 4));        // 3.1416
System.out.println(Utilidades.promedio(10, 20, 30));               // 20.0
System.out.println(Utilidades.promedio(85.5, 90, 78, 92.5));       // 86.5

// Boolean predicates
System.out.println(Utilidades.esPar(10));    // true
System.out.println(Utilidades.esPar(15));    // false
System.out.println(Utilidades.esPrimo(7));   // true
System.out.println(Utilidades.esPrimo(10));  // false

// Factorial
System.out.println(Utilidades.factorial(5));   // 120
System.out.println(Utilidades.factorial(10));  // 3628800

// Composing calls — circle area: π × r²
double radio = 5.0;
double area = Utilidades.multiplicar(Utilidades.potencia(radio, 2), Math.PI);
System.out.println("Área: " + String.format("%.2f", area));  // 78.54
PRECISION (1e-10) is a public static final constant, so you can reference it directly as Utilidades.PRECISION in your own code. The private constructor means new Utilidades() will not compile — the class is designed exclusively for its static API.

Compile & Run

javac Taller7/ejercicio_3/Utilidades.java Taller7/ejercicio_3/PruebaEjercicio3.java
java Taller7.ejercicio_3.PruebaEjercicio3

Build docs developers (and LLMs) love