Introducing Methods - PowerPoint PPT Presentation

About This Presentation
Title:

Introducing Methods

Description:

A method is a collection of statements that are grouped together to perform an operation. ... NetBeans provides a GUI interface to the debugger. ... – PowerPoint PPT presentation

Number of Views:36
Avg rating:3.0/5.0
Slides: 40
Provided by: mikem52
Learn more at: http://cob.jmu.edu
Category:

less

Transcript and Presenter's Notes

Title: Introducing Methods


1
Introducing Methods
  • Corresponds with Chapter 5

2
What is a Method?
  • Method declaration
  • Signature
  • Modifier(s)
  • e.g. public or private, static
  • Return type
  • e.g. void, int, boolean, etc. OR a class type. OR
    no type (if a constructor)
  • Identifier
  • Formal Parameter List
  • Enclosed in parentheses
  • types and identifiers (like variable declaration)
  • Separated by commas
  • Method Body
  • requires return statement if return type is not
    void.

A method is a collection of statements that are
grouped together to perform an operation.
  • Method call
  • Specify the identifier
  • Place actual parameters (arguments) in
    parentheses
  • Actual data (literal, constant, variable, or
    expression)
  • Use return value (if not void)

3
Introducing Methods(Example 5.1)
calling a method
method
4
Anatomy of Method Declaration and Call
method declaraion
5
Processing Sequence of a Method Call
method call
3) Function body executes.
method declaration
6
Parameter Order and Type Assocation
  • void nPrintln (String message, int n)
  • for (int i0 iltn i)
  • System.out.println(message)

IMPORTANT the order and data type of actual
parameters in a method call MUST match the order
and data type of formal parameters in the method
signature. Otherwise you will get a syntax error.
OK
Not OK
7
Frame Stack
  • The Java Virtual Machine keeps manages the local
    variables and parameters of method in a Frame
    Stack (also referred to as Call Stack or Program
    Stack).
  • Frame a data structure that holds the values of
    all the local variables and formal parameters of
    a method.
  • Stack a last-in, first-out data structure.
    Items are pushed onto the top of the stack. Items
    are popped off the top of the stack.
  • When a method is called, its frame (local
    variables and parameters) are pushed onto the top
    of the stack.
  • When a method terminates, its frame is removed
    from the stack.
  • ? the formal parameters and local variables of a
    method exist ONLY AS LONG AS THE METHOD IS
    EXECUTING.

8
Memory Changes During Processing(Listing 5.1,
p132)
9
Memory Changes During Processing(Listing 5.1)
In main(), before calling max()
2
Frame Stack
10
Memory Changes During Processing(Listing 5.1)
In max(), just started
2
Frame Stack
11
Memory Changes During Processing(Listing 5.1)
In max(), before it terminates
5
2
Frame Stack
12
Memory Changes During Processing(Listing 5.1)
Back in main(), after max() returns
NOTE the value returned from max() was assigned
into the variable k.
2
Frame Stack
13
Debugger
  • You can view the contents of the frame stack in
    the debugger.
  • The Java JDK includes a program for debugging
    applications (called jdb.exe, in the bin
    subdirectory).
  • NetBeans provides a GUI interface to the debugger.

NOTE You will be learning how to use the
debugger in future assignments!
14
Stopped at this statement (breakpoint)
mains frame on the frame stack
Local data in main method
15
Stopped at this statement (breakpoint)
maxs frame pushed on top of mains frame
Local data in max method
16
Stopped at this statement (breakpoint)
maxs return value was assigned to variable k
maxs frame was popped off of the frame stack
17
Scope
  • A variables scope is its visibility.
  • Which statements can refer to the variables
    identifier.
  • Local variables and formal parameters have method
    scope. They can only be used inside the method
    for which they are declared.
  • Variables declared inside blocks have block
    scope. They can be used only inside the block for
    which they are declared.
  • Variables declared in the parentheses of a
    control structure can only be used within the
    control structure for which they are declared.
  • You can declare multiple variables of the same
    name as long as they are not in the same nesting
    structure.
  • You cannot declare variables of the same name
    within the same nesting structure.

18
Variables i, j, and k, and parameter args are in
mains scope.
Note max cannot refer to any of mains variables
or parameters...otherwise youll get a syntax
error.
19
Variable result, and parameters num1 and num2 are
in maxs scope. main cannot refer to these
identifiers.
20
Another Scope Example
  • The following example shows variables with
  • Method scope (available throughout an entire
    method)
  • Block scope (available only within a block of
    code)
  • Loop scope (available only within a loop)

21
Note the identifiers x and y are not available
to the main method.
22
(No Transcript)
23
(No Transcript)
24
(No Transcript)
25
(No Transcript)
26
y
27
Method Overloading
  • Overloading declaring multiple methods of the
    same name, but with different formal parameter
    lists.
  • When you call an overloaded method, the compiler
    knows which version you are calling based on the
    types of actual parameters you pass.

28
Method Overloading(Listing 5.4)
29
Frame Stack
30
maxs Frame (int)
Frame Stack
31
Frame Stack
32
maxs Frame (Double)
Frame Stack
33
Frame Stack
34
Note here the result returned from a method is
the actual parameter of another method call.
maxs Frame (Double, 3 params)
Frame Stack
35
maxs Frame (Double)
maxs Frame (Double, 3 params)
Frame Stack
36
maxs Frame (Double, 3 params)
5.4
Frame Stack
37
maxs Frame (Double)
maxs Frame (Double, 3 params)
Frame Stack
38
maxs Frame (Double, 3 params)
Frame Stack
10.14
39
Frame Stack
Write a Comment
User Comments (0)
About PowerShow.com