Chapter 7: UserDefined Methods - PowerPoint PPT Presentation

1 / 49
About This Presentation
Title:

Chapter 7: UserDefined Methods

Description:

Palindrome: An integer or string that reads the same forwards and backwards. ... Output: Boolean message indicating whether integer string is a palindrome. ... – PowerPoint PPT presentation

Number of Views:51
Avg rating:3.0/5.0
Slides: 50
Provided by: manasi61
Category:

less

Transcript and Presenter's Notes

Title: Chapter 7: UserDefined Methods


1
Chapter 7 User-Defined Methods
  • Java Programming
  • From Problem Analysis to Program Design,
  • Second Edition

2
Chapter 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.

3
Chapter 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.

4
Predefined Classes
  • Methods already written and provided by Java.
  • Organized as a collection of classes (class
    libraries).
  • To use, import package.
  • Method type The data type of the value returned
    by the method.

5
Predefined Classes
6
Predefined Classes
7
Predefined Classes
8
class Character (Package java.lang)
9
class Character (Package java.lang)
10
Syntax of Value-Returning Method
modifier(s) returnType methodName
(formal parameter list) statements
11
User-Defined Methods
  • Value-returning methods
  • Used in expressions.
  • Calculate and return a value.
  • Can save value for later calculation or print
    value.
  • modifiers public, private, protected, static,
    abstract, final.
  • returnType Type of the value that the method
    calculates and returns (using return statement).
  • methodName Java identifier name of method.

12
Syntax
  • Syntax of formal parameter list
  • dataType identifier, dataType identifier,...
  • Syntax to call a value-returning method
  • methodName(actual parameter list)

13
Syntax
  • Syntax of the actual parameter list
  • expression or variable, expression or variable,
    ...
  • Syntax of the return statement
  • return expr

14
Equivalent Method Definitions
public static double larger(double x, double
y) double max if (x gt y)
max x else max y return
max
15
Equivalent Method Definitions
  • public static double larger(double x, double y)
  • if (x gt y)
  • return x
  • else
  • return y

16
Equivalent Method Definitions
  • public static double larger(double x, double y)
  • if (x gt y)
  • return x
  • return y

17
Programming Example Palindrome Number
  • Palindrome An integer or string that reads the
    same forwards and backwards.
  • Input Integer or string.
  • Output Boolean message indicating whether
    integer string is a palindrome.

18
Solution isPalindrome Method
public static boolean isPalindrome(String str)
int len str.length()
int i, j j len - 1 for (i 0 i lt
(len - 1) / 2 i) if
(str.charAt(i) ! str.charAt(j))
return false j--
return true

19
Sample Runs Palindrome Number
20
Sample Runs Palindrome Number
21
Flow 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 the method call statement, specify only actual
    parameters, not data type or method type.
  • Control goes back to caller when method exits.

22
Programming 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.

23
Solution Largest Number
static Scanner console new Scanner(System.in)
public static void main(String args)
double num double max int count
System.out.println("Enter 10 numbers.") num
console.nextDouble() max num
for (count 1 count lt 10 count)
num console.nextDouble() max
larger(max, num) System.out.println("
The largest number is "
max)
24
Sample Run Largest Number
Sample Run Enter 10 numbers 10.5 56.34 73.3 42
22 67 88.55 26 62 11 The largest number is 88.55
25
Void Methods
  • Similar in structure to value-returning methods.
  • Call to method is always stand-alone statement.
  • Can use return statement to exit method early.

26
Void Methods Syntax
  • Method definition
  • The general form (syntax) of a void method
    without parameters is as follows
  • modifier(s) void methodName()
  • statements
  • Method call (within the class)
  • The method call has the following syntax
  • methodName()

27
Void Methods with Parameters Syntax
  • Method definition
  • The definition of a void method with parameters
    has the following syntax
  • modifier(s) void methodName
  • (formal parameter list)
  • statements
  • Formal parameter list
  • The formal parameter list has the following
    syntax
  • dataType variable, dataType variable, ...

28
Void Methods with Parameters Syntax
Method call The method call has the following
syntax methodName(actual parameter
list) Actual parameter list The actual
parameter list has the following
syntax expression or variable, expression or
variable, ...
29
Primitive 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.

30
Reference Variables as Parameters
  • If a formal parameter is a reference variable
  • Copies value of corresponding actual parameter.
  • Value of actual parameter is address of the
    object where actual data is stored.
  • Both formal and actual parameters refer to same
    object.

31
Uses of Reference Variables as Parameters
  • Can return more than one value from a method.
  • Can change the value of the actual object.
  • When passing an address, saves memory space and
    time, relative to copying large amount of data.

32
Reference Variables as Parameters type String
33
Scope of an Identifier within a Class
  • Local identifier An identifier that is declared
    within a method or block and that is visible only
    within that method or block.
  • Java does not allow the nesting of methods. That
    is, you cannot include the definition of one
    method in the body of another method.
  • Within a method or a block, an identifier must be
    declared before it can be used. Note that a block
    is a set of statements enclosed within braces.
  • A methods definition can contain several blocks.
    The body of a loop or an if statement also forms
    a block.
  • Within a class, outside of every method
    definition (and block), an identifier can be
    declared anywhere.

34
Scope of an Identifier within a Class
  • Within a method, an identifier that is used to
    name a variable in the outer block of the method
    cannot be used to name any other variable in an
    inner block of the method. For example, in the
    following method definition, the second
    declaration of the variable x is illegal
  • public static void illegalIdentifierDeclaration()
  • int x
  • //block
  • double x //illegal declaration,
  • //x is already declared
  • ...

35
Scope Rules
  • Scope rules of an identifier that is declared
    within a class and accessed within a method
    (block) of the class.
  • An identifier, say X, that is declared within a
    method (block) is accessible
  • Only within the block from the point at which it
    is declared until the end of the block.
  • By those blocks that are nested within that
    block.
  • Suppose X is an identifier that is declared
    within a class and outside of every methods
    definition (block).
  • If X is declared without the reserved word static
    (such as a named constant or a method name), then
    it cannot be accessed in a static method.
  • If X is declared with the reserved word static
    (such as a named constant or a method name), then
    it can be accessed within a method (block)
    provided the method (block) does not have any
    other identifier named X.

36
Scope Rules
  • Example 7-12
  • 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)
  • //...

37
Scope Rules
  • public static int w
  • public static void two(int one, int z)
  • char ch
  • int a
  • //block three
  • int x 12
  • //...
  • //end block three
  • //...

38
Scope Rules Demonstrated
39
Method Overloading An Introduction
  • Method overloading More than one method can have
    the same name.
  • Two methods are said to have different formal
    parameter lists
  • If both methods have a different number of formal
    parameters.
  • If the number of formal parameters is the same in
    both methods, the data type of the formal
    parameters in the order you list must differ in
    at least one position.

40
Method Overloading
  • public void methodOne(int x)
  • public void methodTwo(int x, double y)
  • public void methodThree(double y, int x)
  • public int methodFour(char ch, int x,
  • double y)
  • public int methodFive(char ch, int x,
  • String name)
  • These methods all have different formal parameter
    lists.

41
Method Overloading
  • public void methodSix(int x, double y,
  • char ch)
  • public void methodSeven(int one, double u,
  • char firstCh)
  • The methods methodSix and methodSeven both have
    three formal parameters, and the data type of the
    corresponding parameters is the same.
  • These methods all have the same formal parameter
    lists.

42
Method Overloading
  • Method overloading Creating several methods
    within a class with the same name.
  • The signature of a method consists of the method
    name and its formal parameter list. Two methods
    have different signatures if they have either
    different names or different formal parameter
    lists. (Note that the signature of a method does
    not include the return type of the method.)

43
Method Overloading
  • The following method headings correctly overload
    the method methodXYZ
  • public void methodXYZ()
  • public void methodXYZ(int x, double y)
  • public void methodXYZ(double one, int y)
  • public void methodXYZ(int x, double y,
  • char ch)

44
Method Overloading
  • public void methodABC(int x, double y)
  • public int methodABC(int x, double y)
  • Both these method headings have the same name and
    same formal parameter list.
  • These method headings to overload the method
    methodABC are incorrect.
  • In this case, the compiler will generate a syntax
    error. (Notice that the return types of these
    method headings are different.)

45
Programming Example Data Comparison
  • Input Data from two 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.

46
Programming Example Data Comparison
  • Sample Output
  • Course No Group No Course Average
  • CSC 1 83.71
  • 2 80.82
  • ENG 1 82.00
  • 2 78.20
  • HIS 1 77.69
  • 2 84.15
  • MTH 1 83.57
  • 2 84.29
  • PHY 1 83.22
  • 2 82.60
  • Avg for group 1 82.04

47
Programming Example Data Comparison
48
Chapter Summary
  • Pre-defined methods
  • User-defined methods
  • Value-returning methods
  • Void methods
  • Formal parameters
  • Actual parameters
  • Flow of execution

49
Chapter 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
Write a Comment
User Comments (0)
About PowerShow.com