viernes, 13 de febrero de 2015

Crear número aleatorio en Java con la clase Random

Anteriormente vimos la diferencia entre un número aleatorio y un número pseudo-aleatorio, sin entrar más en ese debate, vamos a ver cómo podemos crear un número aleatorio en Java utilizando para ello la clase Random.

Lo primero que tenemos que hacer para crear nuestro número aleatorio es importar la clase Random, la importamos del paquete util de la siguiente forma:

import java.util.Random;

Una vez importada tenemos que crear un objeto de esa clase para poder usarla, lo podemos crear así:

Random numeroAleatorio; //creamos el objeto de la clase numeroAleatorio en los campos

Seguidamente en el constructor lo inicializamos así:

 numeroAleatorio = new Random();

Una vez creado e inicializado el objeto ya podemos usar sus métodos para poder crear los números aleatorios, en este caso el que usaremos es nextInt() que nos crea un numero aleatorio que en el ejemplo que vamos a poner lo generará en el rango de números enteros de Java, para limitar ese rango después pondremos otro ejemplo.

La clase completa que tiene un método que crea un número aleatorio usando la clase Random es la siguiente:

import java.util.Random;

public class CreandoNumeroAleatorio
{
   
    int num;//variable donde almacenaremos el número aleatorio
    Random numeroAleatorio;//objeto numeroAleatorio de la clase Random
    
    //inicializamos las variables en el constructor
    public CreandoNumeroAleatorio()
    {
        numeroAleatorio = new Random();
        num = 0;
    }
    
    //método que nos crear un número aleatorio y lo imprime en pantalla
    public void crearNumero()
    {
        num = numeroAleatorio.nextInt();
        System.out.println(num);
    }
}

La podéis copiar y pegar que funciona perfectamente y al invocar el método crearNumero os imprimirá por pantalla un número aleatorio, que cómo hemos dicho será del rango total de Java de números enteros que va desde -2147183648 a 2147183647. Para limitar ese rango y que por ejemplo nos cree un número aleatorio del 0 al 10 hay que hacer una pequeña modificación en el código. El método nextInt(int n) especifica al recibir el parámetro n que creará un número aleatorio desde 0 inclusive hasta n exclusive, por lo que si queremos crear un número aleatorio del 0 al 10 deberemos poner el número 11, sólo habrá que cambiar la línea:

num = numeroAleatorio.nextInt();

por está otra:

num = numeroAleatorio.nextInt(11);

Quedando la clase final así:

import java.util.Random;

public class CreandoNumeroAleatorio
{
   
    int num;
    Random numeroAleatorio;
   
    public CreandoNumeroAleatorio()
    {
        numeroAleatorio = new Random();
        num = 0;
    }

    public void crearNumero()
    {
        num = numeroAleatorio.nextInt(11);
        System.out.println(num);
    }
}

Cómo vemos crear números aleatorios es bastante sencillo y pronto empezaremos a usarlo en nuestras aplicaciones y juegos que podéis ir viendo en las últimas publicaciones y en Crear Juego en Java desde 0

No hay comentarios:

Publicar un comentario