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