03. Java Methods
Syntax to CALL a method: When a method is defined in the same class as the calling method (both instance or called method is static):
method-id ( actual-parameter-list
When the static method is defined in another class as the calling method (if NOT private):
Class-id.method-id( actual-parameter-list )
When the instance method is defined in another class as the calling method:
object-var.method-id( actual-parameter-list )
the call must be inside a method (may be main)
a call to a void method must be a statement
a call to a method that returns a value should be inside of a larger expression (e.g., right-hand side of an assignment)
the actual parameter list is a list of expressions that will be evaluated and passed at the time of call during run-time. Each actual parameter shouldbe the same type as the parameters list in the method definition.
Note: ALL PARAMETERS IN JAVA ARE CALL-BY-VALUE! However, when an object or array is passed, only the reference to the object or array is actually passed. Primitive types cannot be passed by reference.
Methods that Return a Value:
Methods that return a value (not void) must have at least one return statement.
The syntax of the return statement:
return expression;
where the expression should be the same type as defined in the method definition.
/* Exercise 3.1
1. Write a static method to return a double (parameter) rounded to the nearest 100th. Use the Math class' round method. Put this method in a class called MyMath . Hints: multiply the double parameter by 100, round that, divide the rounded result by 100.
2. Write a method to print a number (double parameter), its square and its cube, all rounded to the 100th, calling the round100th method from #1, but put this method in another class called TryMyMath
NOTE: To use separate classes, just add another class to the same Java project that has the MyMath class.
3. Write a Java application program (main) that calls the method written in #2, passing Math.E in main. Put main in the TryMyMath class.
*/
public class Exercise_3_1_TryMyMath
{
public static void main(String[] args)
{
// Test Case
Print_Num_Square_Cube(Math.E);
}
// Method to print a number (double parameter), its square and its cube, all rounded to the 100th
public static void Print_Num_Square_Cube(double d_number)
{
System.out.println("Number : " + Exercise_3_1_MyMath.Round100th(d_number));
System.out.println("Number^2: " + Exercise_3_1_MyMath.Round100th(Math.pow(d_number, 2)));
System.out.println("Number^3: " + Exercise_3_1_MyMath.Round100th(Math.pow(d_number, 3)));
}
}
public class Exercise_3_1_MyMath
{
// static method to return a double (parameter) rounded to the nearest 100th
public static double Round100th(double d_round100th)
{
// rounded to the nearest 100th
d_round100th = (Math.round(d_round100th * 100))/100.0; // Hints: multiply the double parameter by 100, round that, divide the rounded result by 100
// System.out.println(d_round100th); // Test print
return d_round100th;
}
}
/*
Program Output:
Number : 2.72
Number^2: 7.39
Number^3: 20.09
*/
/*
Exercise 3.2 Write a Java application program to read 3 ints from the user. Call a method (you write) that returns the average (as a rounded int), and another method (you write) that returns the largest of the 3 ints.
Be sure to allow for 2 or 3 of the numbers having the same value.
*/
import java.util.Scanner;
public class Exercise_3_2_Scanner
{
static Scanner oScanner = new Scanner(System.in);
public static void main(String[] args)
{
int i_num1, i_num2, i_num3;
System.out.println("Enter three integer number");
i_num1 = oScanner.nextInt();
i_num2 = oScanner.nextInt();
i_num3 = oScanner.nextInt();
System.out.println("Average of your entered three numbers: " + GetAverageInt(i_num1, i_num2, i_num3));
System.out.println("Largest of your entered three numbers: " + GetLargestInt(i_num1, i_num2, i_num3));
}
// method that returns the average (as a rounded int)
private static int GetAverageInt(int num1, int num2, int num3)
{
return (int) ((num1 + num2 + num3) / 3);
}
// method that returns the largest of the 3 ints
private static int GetLargestInt(int num1, int num2, int num3)
{
int i_largestInt;
i_largestInt = (num1 >= num2)? num1: num2;
i_largestInt = (i_largestInt >= num3)? i_largestInt : num3;
return i_largestInt;
}
}
- Java Methods SyntaxRecall that Java methods are functions. However, unlike C/C++, they must exist inside of a class. Also, there are different types of methods that will be discussed later. Here is the basic syntax of a Java method definition (remember, this MUST be inside of a class:
return-type method-id ( param-declarations){
var-declarations // These are local variables
//(may only be directly referenced inside
// this method)
statements
}