Chapter 4 Methods
Download
Report
Transcript Chapter 4 Methods
Chapter 5 Methods
Introducing Methods
Declaring Methods
Calling Methods
Passing Parameters
Pass by Value
Overloading Methods
Method Abstraction
local variable, global variable
The Math Class (library functions)
Java Documentation
Introducing Methods
A method is
a collection
of
statements
that are
grouped
together to
perform an
operation.
Method Structure
modifier
methodName
returnValueType
method
heading
method
body
parameters
public static int max(int num1, int num2)
{
int result = 0;
if (num1 > num2)
result = num1;
else
result = num2;
return result;
}
return value
Declaring Methods
public static int max(int num1,
int num2)
{
if (num1 > num2)
return num1;
else
return num2;
}
Calling Methods
Example 4.1 Testing the max method
This program demonstrates calling a method
max to return the largest of the int values
TestMax
Run
Passing Parameters
You pass arguments to the corresponding
parameters in the method signature
For e.g:
void nPrintln(String message, int n)
{
for (int i=0; i<n; i++)
System.out.println(message);
}
To call the above method:
nPrintln(m, i); //where m is String and i is int
message and n are parameters
m and i are arguments
Pass by Value
Pass by value: the parameter is allocated the
required memory storage and the value of the
argument is copied to the parameter. There are 2
separate copies of the same values.
Example 4.2 Testing Pass by value
This program demonstrates passing values to the
methods.
TestPassByValue
Run
Overloading Methods
Methods defined with the same name are
overloaded. The parameter lists are different,
the return type is not relevant.
Example 4.3 Overloading the max Method
double max(double num1, double num2)
{
if (num1 > num2)
return num1;
else
return num2;
}
TestMethodOverloading
Run
The scope of variables
Local variable
Global variable
Scope of variable
Method Abstraction
You can think of the method body as a black
box that contains the detailed
implementation for the method.
Optional return
value
Optional Input
Method Signature
Method body
Black Box
The Math Class
Class
constants:
– PI
– E (the base of natural
logarithms)
Class
methods:
– Trigonometric Methods
– Exponent Methods
– Miscellaneous
Trigonometric Methods
sin(double
a)
cos(double
a)
tan(double
a)
acos(double
a)
asin(double
a)
atan(double
a)
Exponent Methods
exp(double a)
Returns e raised to the power of a.
log(double a)
Returns the natural logarithm of a.
pow(double a, double b)
Returns a raised to the power of b.
sqrt(double a)
Returns the square root of a.
Rounding Methods
double ceil(double x)
Returns the smallest (closest to negative infinity) double value that is
greater than or equal to the argument and is equal to a mathematical
integer.
double floor(double x)
Returns the largest (closest to positive infinity) double value that is
less than or equal to the argument and is equal to a mathematical
integer.
double rint(double x)
Returns the double value that is closest in value to the argument and is
equal to a mathematical integer.
int round(float x)
Returns the closest int to the argument.
Long round(double x)
Returns the closest long to the argument.
min, max, abs, and random
max(a, b)and min(a, b)
Returns the maximum or minimum of two parameters.
abs(a)
Returns the absolute value of the parameter.
random()
Returns a double value with a positive sign, greater than or
equal to 0.0 and less than 1.0. Returns a random double
value in the range [0.0, 1.0).
Java Documentation
http://java.sun.com/javase/6/docs/api/
Using Math Methods
Example 4.4 Computing Mean and Standard
Deviation
Generate 10 random numbers and compute
the mean and standard deviation
n
mean
xi
n
n
i 1
n
deviation
ComputeMeanDeviation
x
i 1
2
i
( xi ) 2
i 1
n
n 1
Run
Case Studies
Example 4.5 Displaying Calendars
The program reads in the month and year
and displays the calendar for a given month
of the year.
PrintCalendar
Run
Design Diagram
printCalendar
(main)
readInput
printMonth
printMonthTitle
getMonthName
printMonthBody
getStartDay
getTotalNumberOfDays
getNumberOfDaysInMonth
isLeapYear
Recursion
E.g.
4.6 Factorial
Factorial(0)=1;
Factorial(n)=n*factorial(n-1)
Recursion
E.g.
4.7 fibonacci numbers
Fib(0)=1;
Fib(1)=1;
Fib(n)=Fib(n-2)+Fib(n-1),
n>=2
Recursion
E.g.
4.8 Towers of Hanoi
3 Poles and n disks
– Move n disks from pole A to pole B.
– One disk can be moved at any time
– Big disk can’t placed on top of small disk
Recursion
Towers
of Hanoi
Solution
– If n=1, move disk 1 from A to B
– Else
Move n-1 disks from A to C, B as temporary
Move disk n from A to B
Move n-1 disks from C to B, A as temporary