Methods in Java
Explains how to write and call methods in Java program.
Prerequisites
- Understand Java primitive types
- Understand execution flow and the following Java control structures:
- Sequence
- Selection (if and switch statements)
- Repetition (while, for, and do while statements)
Objectives
- Write and call (use) methods
- Pass arguments to a method
- Return a value from a method
- Understand how calling a method alters execution flow
Writing a Method
- The main reason for writing code inside methods (and functions), is to make the code resuable.
- Writing code inside methods also helps to organize a program.
- A method consists of a header and a body.
- The header is the first line of the method and includes modifiers, a return type, a name, and a parameter list.
- The body begins and ends with curly braces and usually includes a return statement immediately before the closing curly brace.
- Syntax:
modifiers returnType methodName(param1, param2, …, paramN) { method body; return value; }
- Example:
public static double average(double a, double b, double c) { double sum; sum = a + b + c; return sum / 3.0; }
Calling a Method
- The computer will not execute the code in a method until the method is called.
- To call a method, simply type the method name followed by an argument list to match the method’s parameter list.
- Syntax:
varName = methodName(arg1, arg2, …, argN);
- Examples:
double c = 5.4; double d = 2.3; double avg = average(3.1, c, d); double avg2 = average(6, 2, 3);
Complete Example
public class MethodTest { public static void main(String args[]) { double num1 = 4.1; double num2 = 4.2; double num3 = 5.7; double avg = average(num1, num2, num3); System.out.println("average is " + avg); } public static double average(double a, double b, double c) { double sum; sum = a + b + c; return sum / 3.0; } }
Method Overloading
- When two or more methods in the same class have the same name but different parameter lists, we say the methods are overloaded.
- Method overloading is a convenience that means a programmer isn’t required to remember different function names.
- For example in the C programming language there are six functions to compute the absolute value of a number. Because C doesn’t have method overloading each function has a slightly different name.The C programmer must remember which function name to use based on the type of variable for which he needs the absolute value.
int abs(int x); long labs(long x); long long llabs(long long x); float fabsf(float x); double fabs(double x); long double fabsl(long double x);
- In the Java
Math
class, there are four functions to compute the absolute value of a number, but all four of the functions have the same name.The Java programmer has to remember only one function name to compute the absolute value:static int Math.abs(int x) static long Math.abs(long x) static float Math.abs(float x) static double Math.abs(double x)
Math.abs