Java Reference
In-Depth Information
Finally, the class
Math
also includes a method to generate random numbers. The
method
random
returns a pseudo-random number that is greater than or equal to 0.0
and less than 1.0. A pseudo-random number is a number that appears random, but is
really generated by a deterministic function. See Chapter 3 for additional discussion
about random number generation.
Self-Test Exercises
14. What values are returned by each of the following?
Math.round(3.2), Math.round(3.6),
Math.floor(3.2), Math.floor(3.6),
Math.ceil(3.2), and Math.ceil(3.6).
15.
Suppose
answer
is a variable of type
double
. Write an assignment statement to
assign
Math.round(answer)
to the
int
variable
roundedAnswer
.
16.
Suppose
n
is of type
int
and
m
is of type
long
. What is the type of the value
returned by
Math.min(n, m)
? Is it
int
or
long?
Wrapper Classes
Java treats the primitive types, such as
int
and
double
, differently from the class types,
such as the class
String
and the programmer-defined classes. For example, later in this
chapter you will see that an argument to a method is treated differently depending on
whether the argument is of a primitive or class type. At times, you may find yourself
in a situation where you want to use a value of a primitive type but you want or
need the value to be an object of a class type.
Wrapper classes
provide a class type
corresponding to each of the primitive types so that you can have an object of a class
type that behaves somewhat like its corresponding value of a primitive type.
To convert a value of a primitive type to an “equivalent” value of a class type, you
create an object of the corresponding wrapper class using the primitive type value as
an argument to the wrapper class constructor. The wrapper class for the primitive type
int
is the predefined class
Integer
. If you want to convert an
int
value, such as
42
, to
an object of type
Integer
, you can do so as follows:
wrapper class
integer
class
Integer integerObject =
new
Integer(42);
The variable
integerObject
now names an object of the class
Integer
that
corresponds to the
int
value
42
. (The object
integerObject
does, in fact, have the
int
value
42
stored in an instance variable of the object
integerObject
.) This process
of going from a value of a primitive type to an object of its wrapper class is sometimes
called
boxing
, and as you will see in the next subsection, you can let Java automatically
do all the work of boxing for you.
To go in the reverse direction, from an object of type
Integer
to the corresponding
int
value, you can do the following:
boxing
int
i = integerObject.intValue();