Methods Java
Methods Java
5-2
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");
5-3
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.
5-4
Two Parts of Method Declaration
Header
Body
5-5
Parts of a Method Header
Method Return Method
Modifiers Type Name Parentheses
5-6
Parts of a Method Header
• 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.
5-7
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.
• Examples: SimpleMethod.java, LoopCall.java,
CreditCard.java, DeepAndDeeper.java
5-8
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 */.
5-9
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
5-10
Passing 5 to the displayValue
Method
displayValue(5); The argument 5 is copied into the
parameter variable num.
5-11
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;
displayValue(d); Error! Can’t convert
double to int
5-12
Passing Multiple Arguments
The argument 5 is copied into the num1 parameter.
The argument 10 is copied into the num2 parameter.
5-13
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
5-14
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.
5-15
Passing a Reference as an Argument
Both variables reference the same object
showLength(name);
“Warren”
address
5-17
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
5-18
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.
5-19
Defining a Value-Returning Method
public static int sum(int num1, int num2)
{
int result; Return type
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.
5-20
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;
}
5-21
@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.
5-22
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");
5-23
Returning a Reference to a String
Object
customerName = fullName("John", "Martin");
5-24