Title: UserDefined Methods
1Chapter 7
2Chapter Objectives
- Understand how methods are used in Java
programming
- Learn about standard (predefined) methods and
discover how to use them in a program
- Learn about user-defined methods
- Examine value-returning methods, including actual
and formal parameters
3Chapter Objectives
- Explore how to construct and use a
value-returning, user-defined method in a
program
- Learn how to construct and use user-defined void
methods in a program
- Explore variables as parameters
- Learn about the scope of an identifier
- Become aware of method overloading
4Advantages of using methods
- Methods are the building blocks or modules of
classes and of systems built from many classes
- Predefined methods are supplied within Java
- User defined methods originate from developers
- Allows the developer to write, debug, and
integrate one module at a time in a larger
system
- Allows many developers to simultaneously develop
different components of a larger system
- Improves readability and ease of maintenance of
the system
5Methods
- The concept of a method is similar to the
mathematical concept of a function
- A function has
- A result or a value
- A series of arguments
- Functional form
- A method either
- Evaluates to a result (value) of a particular
type
- Modifies or manipulates its arguments (e.g.
prints)
6Syntax Value-Returning Method
modifier(s) returnType methodName(formal
parameter list)
statements
Syntax Void Method
modifier(s) void methodName(formal parameter
list)
statements
7Predefined Classes and Methods
- Methods already written and provided by Java
- Organized as a collection of classes (class
libraries)
- To use import package or class
- Classname.methodname(argument list)
8class Math (Package java.lang)
9class Math (Package java.lang)
10class Character (Package java.lang)
11class Character (Package java.lang)
12class Character (Package java.lang)
13Value-Returning Method
- modifier(s) returnType methodName(formal
parameter list)
-
- statements
- return expr
-
- The definition of the method has two components
- The body of the method, the statements between
, the code required to implement the method and
return the value
- The heading of the method, the line defining
modifiers, returnType, methodName and formal
parameters or arguments
14User-Defined Methods
- Value-returning methods
- Used in expressions
- Calculate and return a value
- Can be used in the expression in an assignment
statement to save value for later use
- Modifiers public, private, protected, static,
abstract, final
- returnType
- type of value that the method calculates and
returns (using return statement)
- Type of expression formed by call of method
- methodName Java identifier name of method
15Syntax
- Syntax Formal Parameter List
- The syntax of the formal parameter list is
- dataType identifier, dataType identifier,...
- Method Call
- The syntax to call a value-returning method is
- methodName(actual parameter list)
- Syntax Actual Parameter List
- The syntax of the actual parameter list is
- expression or variable, expression or variable,
...
16Equivalent Method Definitions
public static double larger(double x, double y)
double max if(x y) max
x else max y return
max
17Equivalent Method Definitions
- public static double larger(double x, double y)
-
- if(x y)
- return x
- else
- return y
-
18Programming Example Palindrome Number
- Palindrome integer or string that reads the same
forwards and backwards
- Input integer or string
- Output Boolean message indicating whether
integer string is a palindrome
19Solution isPalindrome Method
20Flow of Execution
- Execution always begins with the first statement
in the method main
- User-defined methods execute only when called
- Call to method transfers control from caller to
called method
- In method call statement, specify only actual
parameters, not data type or method type
- Control goes back to caller when method exits
21Programming Example Largest Number
- Input Set of 10 numbers
- Output Largest of 10 numbers
- Solution
- Get numbers one at a time
- Method largest number returns the larger of 2
numbers
- For loop calls method largest number on each
number received and compares to current largest
number
22Void Methods
- Similar in structure to value-returning methods
- No method type
- Call to method is always stand-alone statement
- Can use return statement to exit method early
- Return statement does not return the value of an
expression
23Void Methods with no parameters Syntax
- Method Definition
- modifier(s) void methodName( formal parameter
list)
-
- statements
-
- Method Call (Within the Class)
- methodName()
24Void Methods with Parameters Syntax
- Method Definition
- Definition of a void method with parameters
- modifier(s) void methodName(formal parameter
list)
-
- statements
-
- Formal Parameter List
- The formal parameter list has the following
syntax
- dataType variable, dataType variable, ...
25Void Methods with Parameters Syntax
Method Call The method call has the following syn
tax methodName(actual parameter list) Act
ual Parameter List The actual parameter list has
the following syntax expression or variable,
expression or variable, ...
26Primitive Data Type Variables as Parameters
- A formal parameter receives a copy of its
corresponding actual parameter
- If a formal parameter is a variable of a
primitive data type
- Value of actual parameter is directly stored
- Cannot pass information outside the method
- Provides only a one-way link between actual
parameters and formal parameters
27Reference Variables as Parameters
- If a formal parameter is a reference variable
- Copies value of corresponding actual parameter
- Value of actual parameter is address of object
where actual data is stored
- Both formal and actual parameter refer to same
object
28Uses of Reference Variables as Parameters
- Can return more than one value from a method
- Can change the value of the actual object
- When passing address, would save memory space and
time, relative to copying large amount of data
29Reference Variables as Parameters type String
30Scope of an Identifier Within a Class
- Scope (of an identifier) refers to those parts
of a program where the identifier is accessible
- Local variables variables declared within a
method (or block)
- Within a class
- Any method can call any other method
- Exception static method cannot call a nonstatic
method
31Scope Rules
- Identifier declared within a block is accessible
- Only within the block from the point at which it
is declared until the end of the block
- By those blocks nested within that block if the
nested block does not have an identifier with the
same name as the identifier in the outside block
- Outside block block that encloses nested
block
32Scope Rules Demonstrated
- public class ScopeRules
-
- static final double rate 10.50
- static int z
- static double t
- public static void main(String args)
-
- int num
- double x, z
- char ch
- //...
-
- public static void one(int x, char y)
-
- //...
-
-
- public static int w
- public static void two(int one, int z)
-
- char ch
- int a
- //block three
-
- int x 12
- //...
- //end block three
- //...
-
33Scope Rules Demonstrated
34Method Overloading An Introduction
- Method overloading more than one method can have
the same name
- Overloading Rules
- Every method must have a different number of
formal parameters
- OR
- If the number of formal parameters is the same,
then the data type of the formal parameter (in
the order listed), must differ in at least one
position - Types of parameters determine which method
executes
35Programming Example Data Comparison
- Input Data from 2 different files
- Data format Course Number followed by scores
- Output Course Number, Group Number, Course
Average
- Solution
- Read from more than one file, write output to
file
- Generate bar graphs
- User-defined methods and re-use (calculateAverage
and printResult)
- Parameter passing
36Chapter Summary
- Predefined methods
- User-defined methods
- Value-returning methods
- Void methods
- Formal parameters
- Actual parameters
- Flow of Execution
37Chapter Summary
- Primitive data type variables as parameters
- One-way link between actual parameters and formal
parameters (limitations caused)
- Reference variables as parameters
- Can pass one or more variables from a method
- Can change value of actual parameter
- Scope of an identifier within a class
- Method overloading