224

Capítulo 6 Métodos: un análisis más detallado

 

Puede localizar información adicional acerca de los métodos de una clase predefi nida de Java en la docu-

mentación para la API de Java, en 

java.sun.com/javase/6/docs/api/

. Cuando visite este sitio, haga clic en el 

vínculo 

Index

 para ver un listado en orden alfabético de todas las clases y los métodos en la API de Java. Localice 

el nombre de la clase y haga clic en su vínculo para ver la descripción en línea de la clase. Haga clic en el vínculo 

METHOD

 para ver una tabla de los métodos de la clase. Cada método 

static

 se enlistará con la palabra 

"static"

 

antes del tipo de valor de retorno del método. Para una descripción más detallada acerca de cómo navegar por la 
documentación para la API de Java, consulte el apéndice J, Uso de la documentación para la API de Java.

Buena práctica de programación 6.2

Es fácil buscar información en la documentación en línea de la API de Java; además proporciona los detalles acerca 
de cada clase. Al estudiar una clase en este libro, es conveniente que tenga el hábito de buscar la clase en la documen-
tación en línea, para obtener información adicional.

6.9 Ejemplo práctico: generación de números aleatorios

Ahora analizaremos de manera breve una parte divertida de un tipo popular de aplicaciones de la programación: 
simulación y juegos. En ésta y en la siguiente sección desarrollaremos un programa de juego bien estructurado 
con varios métodos. El programa utiliza la mayoría de las instrucciones de control presentadas hasta este punto 
en el libro, e introduce varios conceptos de programación nuevos.
 

Hay algo en el ambiente de un casino de apuestas que anima a las personas: desde las elegantes mesas de 

caoba y fi eltro para tirar dados, hasta las máquinas tragamonedas. Es el 

elemento de azar

, la posibilidad de que la 

suerte convierta un bolsillo lleno de dinero en una montaña de riquezas. El elemento de azar puede introducirse 
en un programa mediante un objeto de la clase 

Random

 (paquete 

java.util

), o mediante el método 

static

 

llamado 

random

, de la clase 

Math

. Los objetos de la clase 

Random

 pueden producir valores aleatorios de tipo 

boolean

byte

float

double

int

long

 y 

gaussianos

, mientras que el método 

random

 de la clase 

Math

 puede 

producir sólo valores de tipo 

double

 en el rango 

0.0

 ≤ 

x < 

1.0

, donde 

x es el valor regresado por el método 

ran-

dom

. En los siguientes ejemplos, usamos objetos de tipo 

Random

 para producir valores aleatorios.

 

Se puede crear un nuevo objeto generador de números aleatorios de la siguiente manera:

 

Random numerosAleatorios = new Random();

Después, el objeto generador de números aleatorios puede usarse para generar valores 

boolean

byte

float

double

int

long

 y 

gaussianos

; aquí sólo hablaremos sobre los valores 

int

 aleatorios. Para obtener más infor-

mación sobre la clase 

Random

, vaya a 

java.sun.com/javase/6/docs/api/java/util/Random.html

.

 

Considere la siguiente instrucción:

int

 valorAleatorio = numerosAleatorios.nextInt();

El método 

nextInt

 de la clase 

Random

 genera un valor 

int

 aleatorio en el rango de –2,147,483,648 a 

+2,147,483,647. Si el método 

nextInt

 verdaderamente produce valores aleatorios, entonces cualquier valor en 

ese rango debería tener una oportunidad (o probabilidad) igual de ser elegido cada vez que se llame al método 

nextInt

. Los valores devueltos por 

nextInt

 son en realidad 

números seudoaleatorios

 (una secuencia de valores 

producidos por un cálculo matemático complejo). Ese cálculo utiliza la hora actual del día (que, desde luego, 
cambia constantemente) para 

sembrar

 el generador de números aleatorios, de tal forma que cada ejecución de un 

programa produzca una secuencia distinta de valores aleatorios.
 

El rango de valores producidos directamente por el método 

nextInt

 es a menudo distinto del rango de 

valores requeridos en una aplicación de Java particular. Por ejemplo, un programa que simula el lanzamiento 
de una moneda sólo requiere 0 para “águila” y 1 para “sol”. Un programa para simular el tiro de un dado de seis 
lados requeriría enteros aleatorios en el rango de 1 a 6. Un programa que adivine en forma aleatoria el siguiente 
tipo de nave espacial (de cuatro posibilidades distintas) que volará a lo largo del horizonte en un videojuego reque-
riría números aleatorios en el rango de 1 a 4. Para casos como éstos, la clase 

Random

 cuenta con otra versión del 

método 

nextInt

, que recibe un argumento 

int

 y devuelve un valor desde 0 hasta (pero sin incluir) el valor 

del argumento. Por ejemplo, para simular el lanzamiento de monedas, podría utilizar la instrucción

int

 valorAleatorio = numerosAleatorios.nextInt( 

2

 );

que devuelve 0 o 1.

06_MAQ_CAP_06.indd224

4/19/081:22:16AM