(Thought question:) Do you think that the following will work:
class CosEg4
{
public static void main ( String arg[] )
{
long w = 0;
System.out.println( "cos is:" + Math.cos( (double)w ) );
}
}
Yes—the type cast (double)
is not really needed
since it asks for a conversion that would be done anyway.
But sometimes programmers like to do this to make it clear what is
happening.
Examine the following code fragment:
SomeClass s = new SomeClass(); // make a new SomeClass object int x = 32; s.someMethod( x ); // call a method of the object s System.out.println( "x is: " + x ); // what will be printed?
When a primitive variable is used as a parameter for any method at all, the method will not change the value in the variable. So the above fragment will print:
x is: 32
This will be true, regardless of what class someClass
is
and what method someMethod
is.
When an object reference is used as a parameter for some methods of some classes, the object's data might possibly change. You have to read the documentation for the class to know when this is the case. Most methods do not change their parameters, since doing so can cause confusion and errors. For the most part, parameters are used to pass data into a method to tell it what to do.
Examine the following code fragment:
Point B = new Point(); short x = 16, y = 12; B.move( x, y );
The parameters x
and y
contain short
values
which are converted into int
values for the method.
Are the contents of x
and y
altered by this conversion?