SlideShare a Scribd company logo
Programming Logic and Design
Eighth Edition
Chapter 9
Advanced Modularization Techniques
Objectives
In this chapter, you will learn about:
• The parts of a method
• Methods with no parameters
• Methods that require parameters
• Methods that return a value
• Passing arrays to methods
• Overloading methods
• Using predefined methods
• Method design issues, including implementation hiding,
cohesion, and coupling
• Recursion
2Programming Logic and Design, Eighth Edition
The Parts of a Method
3Programming Logic and Design, Eighth Edition
• Method
– A program module that contains a series of statements
that carry out a task
– Invoke or call a method from another program or method
– Any program can contain an unlimited number of
methods
– Each method can be called an unlimited number of times
The Parts of a Method (continued)
4Programming Logic and Design, Eighth Edition
• Method must include
– Method header (also called the declaration or definition)
– Method body
• Contains the implementation (Statements that carry out the
tasks)
– Method return statement (Returns control to the calling
method)
• Variables and constants
– Local: declared in a method
– Global: known to all program modules
5Programming Logic and Design, Eighth Edition
Figure 9-1 A program that calculates
the user’s weight on the moon
Using Methods
with No
Parameters
Figure 9-2 Output of moon weight
calculator program
Using Methods with No
Parameters (continued)
6Programming Logic and Design, Eighth Edition
• When methods must share data
– Pass the data into and return the data out of methods
• When you call a method from a program, you must
know three things:
– Name of the called method
– Type of information to send to the method, if any
– Type of return data to expect from the method, if any
Creating Methods that Require
Parameters
7Programming Logic and Design, Eighth Edition
• Argument to the method
– Pass a data item into a method from a calling program
• Parameter to the method
– Method receives the data item
• To write the declaration for a method that can
receive a parameter, you must know:
– The type of the parameter
– The local name for the parameter
Creating Methods that Require
Parameters (continued)
8Programming Logic and Design, Eighth Edition
• Parameter list
– Types and names of parameters
• Signature
– Method’s name and parameter list
Creating Methods that Require
Parameters (continued)
9Programming Logic and Design, Eighth Edition
• Improve the moon weight program by making the
final output more user-friendly
• Several approaches
– Rewrite the program without including any methods
– Retain the displayInstructions() method, but
make the langCode variable global
– Retain the displayInstructions() method as is,
but add a section to the main program that also asks the
user for a preferred language
– Store the variable that holds the language code in the
main program
Creating Methods that Require
Parameters (continued)
10Programming Logic and Design, Eighth Edition
• Passed by value
– A copy of a value is sent to the method and stored in a
new memory location accessible to the method
• Each time a method executes, parameter variables
listed in the method header are redeclared
Creating Methods that Require
Multiple Parameters
11Programming Logic and Design, Eighth Edition
• Methods can require more than one parameter
– List the arguments within the method call, separated by
commas
– List a data type and local identifier for each parameter
within the method header’s parentheses
– Separate each declaration with a comma
– The data type must be repeated with each parameter
– Arguments sent are called actual parameters
– Variables that accept the parameters in the method are
called formal parameters
12Programming Logic and Design, Eighth Edition
Figure 9-7 A program that calls a computeTax() method that requires two parameters
Creating
Methods that
Require
Multiple
Parameters (continued)
Creating Methods that Return a
Value
13Programming Logic and Design, Eighth Edition
• A variable declared within a method ceases to exist
when the method ends
– Goes out of scope
• To retain a value that exists when a method ends,
return the value from the method back to the
calling method
• When a method returns a value, the method must
have a return type that matches the data type of
the value that is returned
Creating Methods that Return a
Value (continued)
14Programming Logic and Design, Eighth Edition
• Return type for a method
– Indicates the data type of the value that the method will
send back
– Can be any type
– Also called method’s type
– Listed in front of the method name when the method is
defined
• Method can also return nothing
– Return type void
– Void method
Creating Methods that Return a
Value (continued)
15Programming Logic and Design, Eighth Edition
• Example: num getHoursWorked()
– Returns a numeric value
• Usually, you want to use the returned value in the
calling method
– Not required
– Store in variable or use directly without storing
• output "Hours worked is ", getHoursWorked()
16Programming Logic and Design, Eighth Edition
Figure 9-8 A payroll program that calls a
method that returns a value
Figure 9-9 A program that uses a method’s
returned value without storing it
Creating Methods that Return a
Value (continued)
17Programming Logic and Design, Eighth Edition
Creating Methods that Return a
Value (continued)
• Technically, you are allowed to include multiple
return statements in a method
– It’s not recommended
– Violates structured logic
18Programming Logic and Design, Eighth Edition
Creating Methods that Return a
Value (continued)
Figure 9-10 Unstructured approach to returning one of several values
19Programming Logic and Design, Eighth Edition
Figure 9-11 Recommended, structured approach to returning one of several values
Creating Methods
that Return a
Value (continued)
20Programming Logic and Design, Eighth Edition
Creating Methods that Return a
Value (continued)
• To use a method, you should know:
– What the method does in general, but not necessarily
how it carries out tasks internally
– The method’s name
– The method’s required parameters, if any
– The method’s return type, so that you can use any
returned value appropriately
21Programming Logic and Design, Eighth Edition
• IPO chart
– A tool that identifies and categorizes each item in a
method by input, processing, and output
• A method that finds the smallest of three numeric
values
Figure 9-12 IPO chart for the method that finds the smallest of three numeric values
Using an IPO Chart
22Programming Logic and Design, Eighth Edition
• Many programmers create an IPO chart only for
specific methods in their programs
• Provide an overview of:
– Input to the method
– Processing steps that must occur
– Result
Using an IPO Chart (continued)
23Programming Logic and Design, Eighth Edition
• Pass a single array element to a method
– Same manner you would pass a variable or constant
• Pass an entire array as an argument
• Indicate that a method parameter must be an array
– Place square brackets after the data type in the method’s
parameter list
• Passed by
reference
– Changes you make to
array elements within the method are permanent
Passing an Array to a Method
Figure 9-45 Output of the
PassArrayElement program
24Programming Logic and Design, Eighth Edition
Figure 9-15 PassEntireArray program
Passing an
Array to a
Method (continued)
25Programming Logic and Design, Eighth Edition
Figure 9-15 PassEntireArray program (continued)
Passing an
Array to a
Method (continued)
26Programming Logic and Design, Eighth Edition
Figure 9-15 PassEntireArray
program (continued)
Figure 9-16 Output of the
PassEntireArray program
Passing an
Array to a
Method (continued)
Overloading Methods
27Programming Logic and Design, Eighth Edition
• Overloading
– Involves supplying diverse meanings for a single identifier
– Similar to English language—the word break can be
overloaded to mean:
• Break a window
• Break bread
• Break the bank
• Take a break
• Overload a method
– Write multiple methods with a shared name but different
parameter lists
28Programming Logic and Design, Eighth Edition
• Call an overloaded method
– Language translator understands which version of the
method to use based on the arguments used
• Polymorphism
– Ability of a method to act appropriately according to the
context
– Literally, polymorphism means “many forms”
Overloading Methods (continued)
29Programming Logic and Design, Eighth Edition
Figure 9-17 Two overloaded versions of the printBill() method
Overloading Methods (continued)
30Programming Logic and Design, Eighth Edition
Figure 9-18 Two additional overloaded versions of the printBill() method
Overloading Methods (continued)
31Programming Logic and Design, Eighth Edition
• Overloading methods is never required in a program
– Could create multiple methods with unique identifiers
• Advantage is provided to your method’s clients
– Those who use your methods need to remember just one
appropriate name for all related tasks
Overloading Methods (continued)
32Programming Logic and Design, Eighth Edition
• Ambiguous methods
– Situations in which the compiler cannot determine which
method to use
• Every time you call a method
– Compiler decides whether a suitable method exists
– If so, the method executes
– If not, you receive an error message
Avoiding Ambiguous Methods
33Programming Logic and Design, Eighth Edition
Figure 9-19 Program that contains ambiguous
method call
Avoiding
Ambiguous
Methods (continued)
Avoiding Ambiguous Methods (continued)
34Programming Logic and Design, Eighth Edition
• Overload method correctly
– Different parameter lists for methods with the same
name
• Ambiguous, not overloaded
– Methods with identical names that have identical
parameter lists but different return types
– Example
string aMethod(num x)
num aMethod(num y)
Using Predefined Methods
35Programming Logic and Design, Eighth Edition
• Modern programming languages contain many
methods that have already been written
• Sources
– Built-in methods
– Program team members
– Company-wide methods and standards
• Save time and effort
• Output methods
• Mathematical methods
Using Predefined Methods (continued)
36Programming Logic and Design, Eighth Edition
• To use predefined methods, you should know:
– What the method does in general
– Name
– Required parameters
– Return type
• You do not need to know:
– How method is implemented
Method Design Issues: Implementation
Hiding, Cohesion, and Coupling
37Programming Logic and Design, Eighth Edition
• Consider several program qualities
– Employ implementation hiding
• Clients don’ t need to understand internal mechanisms
– Strive to increase cohesion
– Strive to reduce coupling
Understanding Implementation
Hiding
38Programming Logic and Design, Eighth Edition
• Implementation hiding
– Encapsulation of method details
• When a program makes a request to a method, it
does not know the details of how the method is
executed
• A method that calls another must know:
– The name of the called method
– The type of information to send to the method
– The type of return data to expect from the method
39Programming Logic and Design, Eighth Edition
• Interface to the method
– The only part of a method with which the method’s client
interacts
• Substitute a new method implementation
– As long as the interface does not change, you do not
need to make changes in any methods that call the
altered method
• A hidden implementation is often called a black box
– You can examine what goes in and out but not how it
works
Understanding Implementation
Hiding (continued)
Increasing Cohesion
40Programming Logic and Design, Eighth Edition
• It is difficult to decide how much to put into a
method
• Cohesion
– How the internal statements of a method serve to
accomplish the method’s purpose
• Highly cohesive methods
– All the operations are related
– Functionally cohesive
– Usually more reliable than those that have low cohesion
Reducing Coupling
41Programming Logic and Design, Eighth Edition
• Coupling
– A measure of the strength of the connection between
two program methods
• Tight coupling
– Occurs when methods excessively depend on each other
– Makes programs more prone to errors
– Methods have access to the same globally defined
variables
• Loose coupling
– Occurs when methods do not depend on others
– Data is passed from one method to another
Understanding Recursion
42Programming Logic and Design, Eighth Edition
• Recursion
– Occurs when a method is defined in terms of itself
• Recursive method
– Calls itself
• Every time you call a method
– The address to which the program should return is stored
in a memory location called the stack
– When a method ends
• Address is retrieved from the stack
• Program returns to the location from which the method call was
made
Understanding Recursion (continued)
43Programming Logic and Design, Eighth Edition
Figure 9-20 A program
that calls a recursive
method
Figure 9-21 Output of program in Figure 9-20
Understanding Recursion (continued)
44Programming Logic and Design, Eighth Edition
• The stack holds the address where the program
should return at the completion of the method
– Has a finite size
– Will overflow if there are too many recursive calls
• Must provide a way for the recursion to stop
eventually
Understanding Recursion (continued)
45Programming Logic and Design, Eighth Edition
Figure 9-22 Program that uses a recursive
cumulativeSum() method
Figure 9-23 Output of program in
Figure 9-22
Understanding Recursion (continued)
46Programming Logic and Design, Eighth Edition
Figure 9-24 Nonrecursive program that computes cumulative sums
Summary
47Programming Logic and Design, Eighth Edition
• A method is a program module that contains a
series of statements that carry out a task
– Must include a header body and return statement
– A program can contain an unlimited number of methods
– Methods can be called an unlimited number of times
• Data passed to a method is called an argument
• Data received by a method is called a parameter
• Returned values must have a return type
Summary (continued)
48Programming Logic and Design, Eighth Edition
• Single array elements or entire arrays can be passed
• Overloading allows you to create methods with
different parameter lists under one name
• All modern languages contain prewritten methods
• Implementation is hidden in well-written methods
• Recursion occurs when methods call themselves;
logic becomes difficult to follow and hard to debug

More Related Content

What's hot (9)

PDF
Lesson 4.1 completing the problem solving process
MLG College of Learning, Inc
 
PPTX
Introduction to matlab lecture 1 of 4
Randa Elanwar
 
PDF
Matlab-Data types and operators
Luckshay Batra
 
PPT
Matlab introduction
Vikash Jakhar
 
PDF
MATLAB Basics-Part1
Elaf A.Saeed
 
PPT
Introduction to matlab
Tarun Gehlot
 
PPTX
Basic matlab and matrix
Saidur Rahman
 
PDF
Matlab for beginners, Introduction, signal processing
Dr. Manjunatha. P
 
PDF
Advanced MATLAB Tutorial for Engineers & Scientists
Ray Phan
 
Lesson 4.1 completing the problem solving process
MLG College of Learning, Inc
 
Introduction to matlab lecture 1 of 4
Randa Elanwar
 
Matlab-Data types and operators
Luckshay Batra
 
Matlab introduction
Vikash Jakhar
 
MATLAB Basics-Part1
Elaf A.Saeed
 
Introduction to matlab
Tarun Gehlot
 
Basic matlab and matrix
Saidur Rahman
 
Matlab for beginners, Introduction, signal processing
Dr. Manjunatha. P
 
Advanced MATLAB Tutorial for Engineers & Scientists
Ray Phan
 

Similar to Intro to Programming: Modularity (20)

PDF
Object-Oriented Approach to Programming Logic and Design 4th Edition Joyce Fa...
yenfrieyshal
 
PDF
Object-Oriented Approach to Programming Logic and Design 4th Edition Joyce Fa...
jhonzteaste
 
PPT
Lecture 5
Soran University
 
PPTX
test.pptx
Stacia7
 
PDF
9. Software Implementation
ghayour abbas
 
PDF
SWE-401 - 9. Software Implementation
ghayour abbas
 
PPT
C programming for Computing Techniques
Appili Vamsi Krishna
 
PPT
Problem Solving Techniques
Ashesh R
 
PPTX
Plc part 3
Taymoor Nazmy
 
PPTX
Oop.pptx
KalGetachew2
 
PPTX
Chapter_8_Designing_Efficient_Programs.pptx
DarshanR953832
 
PDF
[Ebooks PDF] download C How to Program 1ST Edition Harvey M. Deitel full chap...
raaenvalko0u
 
PPTX
Making method calls_simpler
Diego Alejandro Rios Londoño
 
DOCX
PCCF-UNIT 2-1 new.docx
prakashvs7
 
PPT
Functions ppt ch06
Terry Yoast
 
PDF
Mpg Feb08 Gian Lorenzetto
melbournepatterns
 
PDF
Week 7 Java Programming Methods For I.T students.pdf
JaypeeGPolancos
 
PDF
Programming methodology lecture08
NYversity
 
PPTX
COMPUTING AND PROGRAMMING FUNDAMENTAL.pptx
SherinRappai1
 
Object-Oriented Approach to Programming Logic and Design 4th Edition Joyce Fa...
yenfrieyshal
 
Object-Oriented Approach to Programming Logic and Design 4th Edition Joyce Fa...
jhonzteaste
 
Lecture 5
Soran University
 
test.pptx
Stacia7
 
9. Software Implementation
ghayour abbas
 
SWE-401 - 9. Software Implementation
ghayour abbas
 
C programming for Computing Techniques
Appili Vamsi Krishna
 
Problem Solving Techniques
Ashesh R
 
Plc part 3
Taymoor Nazmy
 
Oop.pptx
KalGetachew2
 
Chapter_8_Designing_Efficient_Programs.pptx
DarshanR953832
 
[Ebooks PDF] download C How to Program 1ST Edition Harvey M. Deitel full chap...
raaenvalko0u
 
Making method calls_simpler
Diego Alejandro Rios Londoño
 
PCCF-UNIT 2-1 new.docx
prakashvs7
 
Functions ppt ch06
Terry Yoast
 
Mpg Feb08 Gian Lorenzetto
melbournepatterns
 
Week 7 Java Programming Methods For I.T students.pdf
JaypeeGPolancos
 
Programming methodology lecture08
NYversity
 
COMPUTING AND PROGRAMMING FUNDAMENTAL.pptx
SherinRappai1
 
Ad

More from Nicole Ryan (20)

PPT
Testing and Improving Performance
Nicole Ryan
 
PPT
Optimizing a website for search engines
Nicole Ryan
 
PPT
Inheritance
Nicole Ryan
 
PPT
Javascript programming using the document object model
Nicole Ryan
 
PPT
Working with Video and Audio
Nicole Ryan
 
PPT
Working with Images
Nicole Ryan
 
PPT
Python Dictionaries and Sets
Nicole Ryan
 
PPT
Creating Visual Effects and Animation
Nicole Ryan
 
PPT
Creating and Processing Web Forms
Nicole Ryan
 
PPT
Organizing Content with Lists and Tables
Nicole Ryan
 
PPT
Social media and your website
Nicole Ryan
 
PPT
Working with Links
Nicole Ryan
 
PPT
Formatting text with CSS
Nicole Ryan
 
PPT
Laying Out Elements with CSS
Nicole Ryan
 
PPT
Getting Started with CSS
Nicole Ryan
 
PPT
Structure Web Content
Nicole Ryan
 
PPT
Getting Started with your Website
Nicole Ryan
 
PPT
Programming Logic and Design: Arrays
Nicole Ryan
 
PPT
Setting up your development environment
Nicole Ryan
 
PPTX
Dynamic vs static
Nicole Ryan
 
Testing and Improving Performance
Nicole Ryan
 
Optimizing a website for search engines
Nicole Ryan
 
Inheritance
Nicole Ryan
 
Javascript programming using the document object model
Nicole Ryan
 
Working with Video and Audio
Nicole Ryan
 
Working with Images
Nicole Ryan
 
Python Dictionaries and Sets
Nicole Ryan
 
Creating Visual Effects and Animation
Nicole Ryan
 
Creating and Processing Web Forms
Nicole Ryan
 
Organizing Content with Lists and Tables
Nicole Ryan
 
Social media and your website
Nicole Ryan
 
Working with Links
Nicole Ryan
 
Formatting text with CSS
Nicole Ryan
 
Laying Out Elements with CSS
Nicole Ryan
 
Getting Started with CSS
Nicole Ryan
 
Structure Web Content
Nicole Ryan
 
Getting Started with your Website
Nicole Ryan
 
Programming Logic and Design: Arrays
Nicole Ryan
 
Setting up your development environment
Nicole Ryan
 
Dynamic vs static
Nicole Ryan
 
Ad

Recently uploaded (20)

PPTX
How to Create Rental Orders in Odoo 18 Rental
Celine George
 
PPSX
HEALTH ASSESSMENT (Community Health Nursing) - GNM 1st Year
Priyanshu Anand
 
PPTX
Capitol Doctoral Presentation -July 2025.pptx
CapitolTechU
 
PDF
ARAL_Orientation_Day-2-Sessions_ARAL-Readung ARAL-Mathematics ARAL-Sciencev2.pdf
JoelVilloso1
 
PDF
IMP NAAC REFORMS 2024 - 10 Attributes.pdf
BHARTIWADEKAR
 
PPTX
How to Configure Prepayments in Odoo 18 Sales
Celine George
 
PPTX
ASRB NET 2023 PREVIOUS YEAR QUESTION PAPER GENETICS AND PLANT BREEDING BY SAT...
Krashi Coaching
 
PPT
digestive system for Pharm d I year HAP
rekhapositivity
 
PPTX
How to Manage Promotions in Odoo 18 Sales
Celine George
 
PDF
Federal dollars withheld by district, charter, grant recipient
Mebane Rash
 
PDF
Zoology (Animal Physiology) practical Manual
raviralanaresh2
 
PPTX
ROLE OF ANTIOXIDANT IN EYE HEALTH MANAGEMENT.pptx
Subham Panja
 
PPSX
Health Planning in india - Unit 03 - CHN 2 - GNM 3RD YEAR.ppsx
Priyanshu Anand
 
PPTX
Unit 2 COMMERCIAL BANKING, Corporate banking.pptx
AnubalaSuresh1
 
PPTX
How to Configure Storno Accounting in Odoo 18 Accounting
Celine George
 
PPTX
How to Configure Access Rights of Manufacturing Orders in Odoo 18 Manufacturing
Celine George
 
PDF
The-Beginnings-of-Indian-Civilisation.pdf/6th class new ncert social/by k san...
Sandeep Swamy
 
PDF
BÀI TẬP BỔ TRỢ THEO LESSON TIẾNG ANH - I-LEARN SMART WORLD 7 - CẢ NĂM - CÓ ĐÁ...
Nguyen Thanh Tu Collection
 
PPTX
HEAD INJURY IN CHILDREN: NURSING MANAGEMENGT.pptx
PRADEEP ABOTHU
 
PPTX
How to Manage Access Rights & User Types in Odoo 18
Celine George
 
How to Create Rental Orders in Odoo 18 Rental
Celine George
 
HEALTH ASSESSMENT (Community Health Nursing) - GNM 1st Year
Priyanshu Anand
 
Capitol Doctoral Presentation -July 2025.pptx
CapitolTechU
 
ARAL_Orientation_Day-2-Sessions_ARAL-Readung ARAL-Mathematics ARAL-Sciencev2.pdf
JoelVilloso1
 
IMP NAAC REFORMS 2024 - 10 Attributes.pdf
BHARTIWADEKAR
 
How to Configure Prepayments in Odoo 18 Sales
Celine George
 
ASRB NET 2023 PREVIOUS YEAR QUESTION PAPER GENETICS AND PLANT BREEDING BY SAT...
Krashi Coaching
 
digestive system for Pharm d I year HAP
rekhapositivity
 
How to Manage Promotions in Odoo 18 Sales
Celine George
 
Federal dollars withheld by district, charter, grant recipient
Mebane Rash
 
Zoology (Animal Physiology) practical Manual
raviralanaresh2
 
ROLE OF ANTIOXIDANT IN EYE HEALTH MANAGEMENT.pptx
Subham Panja
 
Health Planning in india - Unit 03 - CHN 2 - GNM 3RD YEAR.ppsx
Priyanshu Anand
 
Unit 2 COMMERCIAL BANKING, Corporate banking.pptx
AnubalaSuresh1
 
How to Configure Storno Accounting in Odoo 18 Accounting
Celine George
 
How to Configure Access Rights of Manufacturing Orders in Odoo 18 Manufacturing
Celine George
 
The-Beginnings-of-Indian-Civilisation.pdf/6th class new ncert social/by k san...
Sandeep Swamy
 
BÀI TẬP BỔ TRỢ THEO LESSON TIẾNG ANH - I-LEARN SMART WORLD 7 - CẢ NĂM - CÓ ĐÁ...
Nguyen Thanh Tu Collection
 
HEAD INJURY IN CHILDREN: NURSING MANAGEMENGT.pptx
PRADEEP ABOTHU
 
How to Manage Access Rights & User Types in Odoo 18
Celine George
 

Intro to Programming: Modularity

  • 1. Programming Logic and Design Eighth Edition Chapter 9 Advanced Modularization Techniques
  • 2. Objectives In this chapter, you will learn about: • The parts of a method • Methods with no parameters • Methods that require parameters • Methods that return a value • Passing arrays to methods • Overloading methods • Using predefined methods • Method design issues, including implementation hiding, cohesion, and coupling • Recursion 2Programming Logic and Design, Eighth Edition
  • 3. The Parts of a Method 3Programming Logic and Design, Eighth Edition • Method – A program module that contains a series of statements that carry out a task – Invoke or call a method from another program or method – Any program can contain an unlimited number of methods – Each method can be called an unlimited number of times
  • 4. The Parts of a Method (continued) 4Programming Logic and Design, Eighth Edition • Method must include – Method header (also called the declaration or definition) – Method body • Contains the implementation (Statements that carry out the tasks) – Method return statement (Returns control to the calling method) • Variables and constants – Local: declared in a method – Global: known to all program modules
  • 5. 5Programming Logic and Design, Eighth Edition Figure 9-1 A program that calculates the user’s weight on the moon Using Methods with No Parameters Figure 9-2 Output of moon weight calculator program
  • 6. Using Methods with No Parameters (continued) 6Programming Logic and Design, Eighth Edition • When methods must share data – Pass the data into and return the data out of methods • When you call a method from a program, you must know three things: – Name of the called method – Type of information to send to the method, if any – Type of return data to expect from the method, if any
  • 7. Creating Methods that Require Parameters 7Programming Logic and Design, Eighth Edition • Argument to the method – Pass a data item into a method from a calling program • Parameter to the method – Method receives the data item • To write the declaration for a method that can receive a parameter, you must know: – The type of the parameter – The local name for the parameter
  • 8. Creating Methods that Require Parameters (continued) 8Programming Logic and Design, Eighth Edition • Parameter list – Types and names of parameters • Signature – Method’s name and parameter list
  • 9. Creating Methods that Require Parameters (continued) 9Programming Logic and Design, Eighth Edition • Improve the moon weight program by making the final output more user-friendly • Several approaches – Rewrite the program without including any methods – Retain the displayInstructions() method, but make the langCode variable global – Retain the displayInstructions() method as is, but add a section to the main program that also asks the user for a preferred language – Store the variable that holds the language code in the main program
  • 10. Creating Methods that Require Parameters (continued) 10Programming Logic and Design, Eighth Edition • Passed by value – A copy of a value is sent to the method and stored in a new memory location accessible to the method • Each time a method executes, parameter variables listed in the method header are redeclared
  • 11. Creating Methods that Require Multiple Parameters 11Programming Logic and Design, Eighth Edition • Methods can require more than one parameter – List the arguments within the method call, separated by commas – List a data type and local identifier for each parameter within the method header’s parentheses – Separate each declaration with a comma – The data type must be repeated with each parameter – Arguments sent are called actual parameters – Variables that accept the parameters in the method are called formal parameters
  • 12. 12Programming Logic and Design, Eighth Edition Figure 9-7 A program that calls a computeTax() method that requires two parameters Creating Methods that Require Multiple Parameters (continued)
  • 13. Creating Methods that Return a Value 13Programming Logic and Design, Eighth Edition • A variable declared within a method ceases to exist when the method ends – Goes out of scope • To retain a value that exists when a method ends, return the value from the method back to the calling method • When a method returns a value, the method must have a return type that matches the data type of the value that is returned
  • 14. Creating Methods that Return a Value (continued) 14Programming Logic and Design, Eighth Edition • Return type for a method – Indicates the data type of the value that the method will send back – Can be any type – Also called method’s type – Listed in front of the method name when the method is defined • Method can also return nothing – Return type void – Void method
  • 15. Creating Methods that Return a Value (continued) 15Programming Logic and Design, Eighth Edition • Example: num getHoursWorked() – Returns a numeric value • Usually, you want to use the returned value in the calling method – Not required – Store in variable or use directly without storing • output "Hours worked is ", getHoursWorked()
  • 16. 16Programming Logic and Design, Eighth Edition Figure 9-8 A payroll program that calls a method that returns a value Figure 9-9 A program that uses a method’s returned value without storing it Creating Methods that Return a Value (continued)
  • 17. 17Programming Logic and Design, Eighth Edition Creating Methods that Return a Value (continued) • Technically, you are allowed to include multiple return statements in a method – It’s not recommended – Violates structured logic
  • 18. 18Programming Logic and Design, Eighth Edition Creating Methods that Return a Value (continued) Figure 9-10 Unstructured approach to returning one of several values
  • 19. 19Programming Logic and Design, Eighth Edition Figure 9-11 Recommended, structured approach to returning one of several values Creating Methods that Return a Value (continued)
  • 20. 20Programming Logic and Design, Eighth Edition Creating Methods that Return a Value (continued) • To use a method, you should know: – What the method does in general, but not necessarily how it carries out tasks internally – The method’s name – The method’s required parameters, if any – The method’s return type, so that you can use any returned value appropriately
  • 21. 21Programming Logic and Design, Eighth Edition • IPO chart – A tool that identifies and categorizes each item in a method by input, processing, and output • A method that finds the smallest of three numeric values Figure 9-12 IPO chart for the method that finds the smallest of three numeric values Using an IPO Chart
  • 22. 22Programming Logic and Design, Eighth Edition • Many programmers create an IPO chart only for specific methods in their programs • Provide an overview of: – Input to the method – Processing steps that must occur – Result Using an IPO Chart (continued)
  • 23. 23Programming Logic and Design, Eighth Edition • Pass a single array element to a method – Same manner you would pass a variable or constant • Pass an entire array as an argument • Indicate that a method parameter must be an array – Place square brackets after the data type in the method’s parameter list • Passed by reference – Changes you make to array elements within the method are permanent Passing an Array to a Method Figure 9-45 Output of the PassArrayElement program
  • 24. 24Programming Logic and Design, Eighth Edition Figure 9-15 PassEntireArray program Passing an Array to a Method (continued)
  • 25. 25Programming Logic and Design, Eighth Edition Figure 9-15 PassEntireArray program (continued) Passing an Array to a Method (continued)
  • 26. 26Programming Logic and Design, Eighth Edition Figure 9-15 PassEntireArray program (continued) Figure 9-16 Output of the PassEntireArray program Passing an Array to a Method (continued)
  • 27. Overloading Methods 27Programming Logic and Design, Eighth Edition • Overloading – Involves supplying diverse meanings for a single identifier – Similar to English language—the word break can be overloaded to mean: • Break a window • Break bread • Break the bank • Take a break • Overload a method – Write multiple methods with a shared name but different parameter lists
  • 28. 28Programming Logic and Design, Eighth Edition • Call an overloaded method – Language translator understands which version of the method to use based on the arguments used • Polymorphism – Ability of a method to act appropriately according to the context – Literally, polymorphism means “many forms” Overloading Methods (continued)
  • 29. 29Programming Logic and Design, Eighth Edition Figure 9-17 Two overloaded versions of the printBill() method Overloading Methods (continued)
  • 30. 30Programming Logic and Design, Eighth Edition Figure 9-18 Two additional overloaded versions of the printBill() method Overloading Methods (continued)
  • 31. 31Programming Logic and Design, Eighth Edition • Overloading methods is never required in a program – Could create multiple methods with unique identifiers • Advantage is provided to your method’s clients – Those who use your methods need to remember just one appropriate name for all related tasks Overloading Methods (continued)
  • 32. 32Programming Logic and Design, Eighth Edition • Ambiguous methods – Situations in which the compiler cannot determine which method to use • Every time you call a method – Compiler decides whether a suitable method exists – If so, the method executes – If not, you receive an error message Avoiding Ambiguous Methods
  • 33. 33Programming Logic and Design, Eighth Edition Figure 9-19 Program that contains ambiguous method call Avoiding Ambiguous Methods (continued)
  • 34. Avoiding Ambiguous Methods (continued) 34Programming Logic and Design, Eighth Edition • Overload method correctly – Different parameter lists for methods with the same name • Ambiguous, not overloaded – Methods with identical names that have identical parameter lists but different return types – Example string aMethod(num x) num aMethod(num y)
  • 35. Using Predefined Methods 35Programming Logic and Design, Eighth Edition • Modern programming languages contain many methods that have already been written • Sources – Built-in methods – Program team members – Company-wide methods and standards • Save time and effort • Output methods • Mathematical methods
  • 36. Using Predefined Methods (continued) 36Programming Logic and Design, Eighth Edition • To use predefined methods, you should know: – What the method does in general – Name – Required parameters – Return type • You do not need to know: – How method is implemented
  • 37. Method Design Issues: Implementation Hiding, Cohesion, and Coupling 37Programming Logic and Design, Eighth Edition • Consider several program qualities – Employ implementation hiding • Clients don’ t need to understand internal mechanisms – Strive to increase cohesion – Strive to reduce coupling
  • 38. Understanding Implementation Hiding 38Programming Logic and Design, Eighth Edition • Implementation hiding – Encapsulation of method details • When a program makes a request to a method, it does not know the details of how the method is executed • A method that calls another must know: – The name of the called method – The type of information to send to the method – The type of return data to expect from the method
  • 39. 39Programming Logic and Design, Eighth Edition • Interface to the method – The only part of a method with which the method’s client interacts • Substitute a new method implementation – As long as the interface does not change, you do not need to make changes in any methods that call the altered method • A hidden implementation is often called a black box – You can examine what goes in and out but not how it works Understanding Implementation Hiding (continued)
  • 40. Increasing Cohesion 40Programming Logic and Design, Eighth Edition • It is difficult to decide how much to put into a method • Cohesion – How the internal statements of a method serve to accomplish the method’s purpose • Highly cohesive methods – All the operations are related – Functionally cohesive – Usually more reliable than those that have low cohesion
  • 41. Reducing Coupling 41Programming Logic and Design, Eighth Edition • Coupling – A measure of the strength of the connection between two program methods • Tight coupling – Occurs when methods excessively depend on each other – Makes programs more prone to errors – Methods have access to the same globally defined variables • Loose coupling – Occurs when methods do not depend on others – Data is passed from one method to another
  • 42. Understanding Recursion 42Programming Logic and Design, Eighth Edition • Recursion – Occurs when a method is defined in terms of itself • Recursive method – Calls itself • Every time you call a method – The address to which the program should return is stored in a memory location called the stack – When a method ends • Address is retrieved from the stack • Program returns to the location from which the method call was made
  • 43. Understanding Recursion (continued) 43Programming Logic and Design, Eighth Edition Figure 9-20 A program that calls a recursive method Figure 9-21 Output of program in Figure 9-20
  • 44. Understanding Recursion (continued) 44Programming Logic and Design, Eighth Edition • The stack holds the address where the program should return at the completion of the method – Has a finite size – Will overflow if there are too many recursive calls • Must provide a way for the recursion to stop eventually
  • 45. Understanding Recursion (continued) 45Programming Logic and Design, Eighth Edition Figure 9-22 Program that uses a recursive cumulativeSum() method Figure 9-23 Output of program in Figure 9-22
  • 46. Understanding Recursion (continued) 46Programming Logic and Design, Eighth Edition Figure 9-24 Nonrecursive program that computes cumulative sums
  • 47. Summary 47Programming Logic and Design, Eighth Edition • A method is a program module that contains a series of statements that carry out a task – Must include a header body and return statement – A program can contain an unlimited number of methods – Methods can be called an unlimited number of times • Data passed to a method is called an argument • Data received by a method is called a parameter • Returned values must have a return type
  • 48. Summary (continued) 48Programming Logic and Design, Eighth Edition • Single array elements or entire arrays can be passed • Overloading allows you to create methods with different parameter lists under one name • All modern languages contain prewritten methods • Implementation is hidden in well-written methods • Recursion occurs when methods call themselves; logic becomes difficult to follow and hard to debug