0% found this document useful (0 votes)
8 views28 pages

CSO_Gaddis_Java_Chapter05_7e

Chapter 5 of 'Starting Out with Java' covers methods, including their definitions, how to pass arguments, and the importance of local variables. It explains the difference between void and value-returning methods, the process of calling methods, and how to document them effectively. Additionally, it discusses problem-solving with methods and the handling of exceptions when methods interact with external entities.

Uploaded by

jkelly9
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
8 views28 pages

CSO_Gaddis_Java_Chapter05_7e

Chapter 5 of 'Starting Out with Java' covers methods, including their definitions, how to pass arguments, and the importance of local variables. It explains the difference between void and value-returning methods, the process of calling methods, and how to document them effectively. Additionally, it discusses problem-solving with methods and the handling of exceptions when methods interact with external entities.

Uploaded by

jkelly9
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 28

STARTING OUT WITH JAVATM

7th Edition

Chapter 5
Methods

Copyright © 2019, 2016, 2013 Pearson Education, Inc. All Rights Reserved
Chapter Topics

Chapter 5 discusses the following main topics:


– Introduction to Methods
– Passing Arguments to a Method
– More About Local Variables
– Returning a Value from a Method
– Problem Solving with Methods

Copyright © 2019, 2016, 2013 Pearson Education, Inc. All Rights Reserved
Why Write Methods?
• Methods are commonly used to break a
problem down into small manageable pieces.
This is called divide and conquer.
• Methods simplify programs. If a specific task is
performed in several places in the program, a
method can be written once to perform that
task, and then be executed anytime it is
needed. This is known as code reuse.

Copyright © 2019, 2016, 2013 Pearson Education, Inc. All Rights Reserved
void Methods and Value-Returning
Methods

• A void method is one that simply performs a


task and then terminates.
System.out.println("Hi!");
• A value-returning method not only performs a
task, but also sends a value back to the code
that called it.
int number = Integer.parseInt("700");

Copyright © 2019, 2016, 2013 Pearson Education, Inc. All Rights Reserved
Defining a void Method
• To create a method, you must write a definition,
which consists of a header and a body.
• The method header, which appears at the
beginning of a method definition, lists several
important things about the method, including
the method’s name.
• The method body is a collection of statements
that are performed when the method is
executed.

Copyright © 2019, 2016, 2013 Pearson Education, Inc. All Rights Reserved
Two Parts of Method Declaration

Header

public static void displayMesssage()


{
System.out.println("Hello");
}
Body

Copyright © 2019, 2016, 2013 Pearson Education, Inc. All Rights Reserved
Parts of a Method Header (1 of 2)

Method Return Method


Modifiers Type Name Parentheses

public static void displayMessage ()


{
System.out.println("Hello");
}

Copyright © 2019, 2016, 2013 Pearson Education, Inc. All Rights Reserved
Parts of a Method Header (2 of 2)
• Method modifiers
– public—method is publicly available to code outside the class
– static—method belongs to a class, not a specific object.
• Return type—void or the data type from a value-
returning method
• Method name—name that is descriptive of what the
method does
• Parentheses—contain nothing or a list of one or more
variable declarations if the method is capable of
receiving arguments.

Copyright © 2019, 2016, 2013 Pearson Education, Inc. All Rights Reserved
Calling a Method
• A method executes when it is called.
• The main method is automatically called when a
program starts, but other methods are executed by
method call statements.
displayMessage();
• Notice that the method modifiers and the void return
type are not written in the method call statement.
Those are only written in the method header.

Copyright © 2019, 2016, 2013 Pearson Education, Inc. All Rights Reserved
Documenting Methods
• A method should always be documented by
writing comments that appear just before the
method’s definition.
• The comments should provide a brief
explanation of the method’s purpose.
• The documentation comments begin with /**
and end with */.

Copyright © 2019, 2016, 2013 Pearson Education, Inc. All Rights Reserved
Passing Arguments to a Method
• Values that are sent into a method are called
arguments.
System.out.println("Hello");
number = Integer.parseInt(str);
• The data type of an argument in a method call must
correspond to the variable declaration in the
parentheses of the method declaration. The parameter
is the variable that holds the value being passed into a
method.
• By using parameter variables in your method
declarations, you can design your own methods that
accept data this way. See example: PassArg.java
Copyright © 2019, 2016, 2013 Pearson Education, Inc. All Rights Reserved
Passing 5 to the displayValue Method
displayValue(5); The argument 5 is copied into the
parameter variable num.

public static void displayValue(int


num)
{
System.out.println("The value is " + num);
}
The method will display The value is 5
Copyright © 2019, 2016, 2013 Pearson Education, Inc. All Rights Reserved
Argument and Parameter Data Type
Compatibility
• When you pass an argument to a method, be
sure that the argument’s data type is
compatible with the parameter variable’s data
type.
• Java will automatically perform widening
conversions, but narrowing conversions will
cause a compiler error.
double d = 1.0;
Error! Can’t convert
displayValue(d); double to int
Copyright © 2019, 2016, 2013 Pearson Education, Inc. All Rights Reserved
Passing Multiple Arguments

The argument 5 is copied into the num1 parameter.


The argument 10 is copied into the num2 parameter.

showSum(5, 10); NOTE: Order matters!

public static void showSum(double num1, double num2)


{
double sum; //to hold the sum
sum = num1 + num2;
System.out.println("The sum is " + sum);
}
Copyright © 2019, 2016, 2013 Pearson Education, Inc. All Rights Reserved
Arguments are Passed by Value
• In Java, all arguments of the primitive data types are
passed by value, which means that only a copy of an
argument’s value is passed into a parameter variable.
• A method’s parameter variables are separate and
distinct from the arguments that are listed inside the
parentheses of a method call.
• If a parameter variable is changed inside a method, it
has no affect on the original argument.
• See example: PassByValue.java

Copyright © 2019, 2016, 2013 Pearson Education, Inc. All Rights Reserved
Passing Object References to a Method
• Recall that a class type variable does not hold
the actual data item that is associated with it,
but holds the memory address of the object. A
variable associated with an object is called a
reference variable.

• When an object such as a String is passed


as an argument, it is actually a reference to the
object that is passed.

Copyright © 2019, 2016, 2013 Pearson Education, Inc. All Rights Reserved
Passing a Reference as an Argument
Both variables reference the same object
showLength(name);
“Warren”
address

The address of the object is address


copied into the str parameter.
public static void showLength(String str)
{
System.out.println(str + " is " +
str.length() + " characters
long.");
str = "Joe" // see next slide
} Copyright © 2019, 2016, 2013 Pearson Education, Inc. All Rights Reserved
Strings are Immutable Objects
• Strings are immutable objects, which means that they
cannot be changed. When the line
str = "Joe";

is executed, it cannot change an immutable object, so


creates a new object.

The name variable holds the


address of a String object address “Warren”
The str variable holds the
address of a different address “Joe”
String object

• See example: PassString.java


Copyright © 2019, 2016, 2013 Pearson Education, Inc. All Rights Reserved
@param Tag in Documentation Comments
• You can provide a description of each parameter in your
documentation comments by using the @param tag.
• General format
@param parameterName Description
• See example: TwoArgs2.java
• All @param tags in a method’s documentation comment
must appear after the general description.The
description can span several lines.

Copyright © 2019, 2016, 2013 Pearson Education, Inc. All Rights Reserved
More About Local Variables
• A local variable is declared inside a method and is not
accessible to statements outside the method.
• Different methods can have local variables with the same
names because the methods cannot see each other’s local
variables.
• A method’s local variables exist only while the method is
executing. When the method ends, the local variables and
parameter variables are destroyed and any values stored
are lost.
• Local variables are not automatically initialized with a default
value and must be given a value before they can be used.
• See example: LocalVars.java

Copyright © 2019, 2016, 2013 Pearson Education, Inc. All Rights Reserved
Returning a Value from a Method

• Data can be passed into a method by way of


the parameter variables. Data may also be
returned from a method, back to the statement
that called it.
int num = Integer.parseInt("700");

• The string “700” is passed into the parseInt


method.
• The int value 700 is returned from the method
and assigned to the num variable.
Copyright © 2019, 2016, 2013 Pearson Education, Inc. All Rights Reserved
Defining a Value-Returning Method
public static int sum(int num1, int num2)
{
Return type
int result;
result = num1 + num2;
The return statement
return result; causes the method to end
execution and it returns a
} value back to the
This expression must be of the statement that called the
same data type as the return type method.

Copyright © 2019, 2016, 2013 Pearson Education, Inc. All Rights Reserved
Calling a Value-Returning Method

total = sum(value1, value2);


20 40
public static int sum(int num1, int
num2)
60
{
int result;
result = num1 + num2;
return result;
}

Copyright © 2019, 2016, 2013 Pearson Education, Inc. All Rights Reserved
@return Tag in Documentation
Comments
• You can provide a description of the return
value in your documentation comments by
using the @return tag.
• General format
@return Description
• See example: ValueReturn.java
• The @return tag in a method’s documentation
comment must appear after the general
description. The description can span several
lines.
Copyright © 2019, 2016, 2013 Pearson Education, Inc. All Rights Reserved
Returning a booleanValue
• Sometimes we need to write methods to test arguments for validity and
return true or false
public static boolean isValid(int number)
{
boolean status;
if(number >= 1 && number <= 100)
status = true;
else
status = false;
return status;
}
Calling code:
int value = 20;
If(isValid(value))
System.out.println("The value is within range");
else
System.out.println("The value is out of range");

Copyright © 2019, 2016, 2013 Pearson Education, Inc. All Rights Reserved
Returning a Reference to a String Object
customerName = fullName("John", "Martin");

public static String fullName(String first, String last)

{
String name; Local variable name holds
address
the reference to the object.
name = first + " " + last;
The return statement sends
return name;
a copy of the reference
}
back to the call statement
“John Martin” and it is stored in
customerName.
See example:
ReturnString.java
Copyright © 2019, 2016, 2013 Pearson Education, Inc. All Rights Reserved
Problem Solving with Methods
• A large, complex problem can be solved a
piece at a time by methods.
• The process of breaking a problem down into
smaller pieces is called functional
decomposition.
• See example: SalesReport.java
• If a method calls another method that has a
throws clause in its header, then the calling
method should have the same throws clause.

Copyright © 2019, 2016, 2013 Pearson Education, Inc. All Rights Reserved
Calling Methods that Throw Exceptions
• Note that the main and getTotalSales
methods in SalesReport.java have a throws
IOException clause.
• All methods that use a Scanner object to open
a file must throw or handle IOException.
• You will learn how to handle exceptions in
Chapter 12.
• For now, understand that Java required any
method that interacts with an external entity,
such as the file system to either throw an
exception to be handles elsewhere in your
application or to handle the exception locally.
Copyright © 2019, 2016, 2013 Pearson Education, Inc. All Rights Reserved

You might also like