Supplementary for method

Download Report

Transcript Supplementary for method

Object-Oriented Programming and Design
DCO10803 Supplementary for method
Prototype (signature)
 Call and parameter passing

(Extracted from former lecture 2 of DCO10103)
-- By Rossella Lau
Supplementary for method, DCO10803, Quarter 3, 2002-3
Page 1 of 7
Revisit of Quadratic.java
import java.io.*;
import java.lang.*;
// can be imported automatically
public class Quadratic
{//assumes b^2 > 4ac
…… // the standard 3 I/O objects
private static double root1, root2; //the fields to store the roots
private static void main(String[] args) throws IOException {
…… // input a, b, c
findRoot(a, b, c);
stdOut.println("x1 = " + root1 + ", x2 = " + root2);
}
protected static void
findRoot(double para_a,
double para_b, double para_c) {
double t = java.lang.Math.sqrt(para_b * para_b - 4 * para_a * para_c);
root1 = (-para_b + t) / (2d * para_a);
root2 = (-para_b - t) / (2d * para_a);
}
}
method header
method body
Supplementary for method, DCO10803, Quarter 3, 2002-3
method call
Page 2 of 7
Methods
 In
Java, a function inside a class is called a method
Function/method prototype – method header definition:
 value type resulted by the function

type may be any primitive data or object (valued function)
• e.g., calculateNetPay()

type may be void – no value is resulted from the function
• e.g., findRoot()
 the
name of the function
 number of and types of the parameters

e.g., para_a, para_b, para_c
Supplementary for method, DCO10803, Quarter 3, 2002-3
Page 3 of 7
Method definition
 The
body of the method defines what about the
method is inside {} after the method header
 It uses the actual value of the parameter(s) (passed by
a calling statement) to compute a result
 It
can also define its local variables
the values or the identifiers of the variables are not visible
to any outsider.
 it cannot use variables defined inside other methods, e.g.,
findRoot() cannot use a, b, c of main().

 It
should return a value for a valued method (return
type of the method is not void).
Supplementary for method, DCO10803, Quarter 3, 2002-3
Page 4 of 7
Variable scopes and life of variables
 The
visibility mentioned for local variables also called
the scope of variables
 A method is a scope – Local variables and parameters
of a method are only visible to the method
 A block – a series of statements quoted by braces is
also a scope
 A class is a scope – class data/objects are visible to the
whole class – i.e. visible to all methods inside the class
– similar to global variables
 Variables are born when its associated scope is
invoked and "died" when the scope is terminated
Supplementary for method, DCO10803, Quarter 3, 2002-3
Page 5 of 7
Invoking a method
 To
invoke a method means to execute a method or to
call a method
 The statement that invokes (calls) a method should
pass the required number of parameters respectively

In some situation, the passed value may be promoted to
another type: e.g., from an integer to a double
 The
method call results in a value returned by a
valued method
can be used in an expression
 may need to be stored for further use – it is more efficient
if the result is required in more than one statement – avoid
invoking more than once if the method call is the same

Supplementary for method, DCO10803, Quarter 3, 2002-3
Page 6 of 7
Execution of methods
 A method

is invoked by a calling action. E.g.,
findSmallest(5, 9, 7);
 A calling
action activates a called method
 A called
method returns the execution control to the
statement after its calling statement or the next action
of the calling statement.
......
s = findSmallest(5, 9, 7);
stdOut.println(s);
......
Supplementary for method, DCO10803, Quarter 3, 2002-3
… int findSmallest(a,b,c){
……/data declaration
if (a < b)
......
return result;
}
Page 7 of 7