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