<< Chapter < Page | Chapter >> Page > |
Note: In a call to a static method, the name of the class in which it is defined can be given as in the second call.Since the method is defined in the same class as the call, the class name need not be given, as shown in the first call.
Exercise Trace the execution of a call of the following method and explain why it doesn't swap the values of the actual parameters.
void swap(int a, int b) {
int temp = a; a = b;
b = temp;}
Can you write a method to swap two integer values?
Concept When a method that is declared with a return type is called, it allocates memory for its parameters and local variables, executesits statements and then returns a value of the type. The call is a statement constructedfrom the name of the method followed by a list of actual parameters; the call is an expression and can appear wherever an expression is allowed.
Program: Method02.java
// Learning Object Method02
// methods returning a valuepublic class Method02 {
static int maximum(int a, int b) { if (a > b)
return a; else
return b; }
public static void main(/*String[] args*/) { int x = 10, y = 20;
int max; max = maximum(x, y);
System.out.println(max); }
}
x
and
y
are allocated and initialized;
the variable
max
is allocated but not initialized.x
and
y
.Method Area
. The new activation record hides
the previous ones which are no longer accessible.return b
is executed, the value of
b
is used
for the value to be returned.max
.max
is printed.Exercise Write the body of the main method as one statement.
Concept One method can call another, that is, when executing one method, any statement or expression call be a method call. A sequenceof method calls results in a stack of activation records, where each method (except the last one that was called)is waiting for the method it called to return. There is no limit on the depth of method calls, except of course the amount of memory allocated to the program.
Note: The
main
method is a method like any other.
The operating system can be considered as a program which calls the main method.This call has a single parameter: an array of strings containing the contents
of the command line.
Program: Method03.java
// Learning Object Method03
// calling a method from a methodpublic class Method03 {
static int maximum(int a, int b) { if (a > b)
return a; else
return b; }
static void printMax(int a, int b) {
int max; max = Method03.maximum(a, b);
System.out.println(max); }
public static void main(/*String[] args*/) { printMax(10, 20);
}}
Notification Switch
Would you like to follow the 'Learning objects for java (with jeliot)' conversation and receive update notifications?