Functions in Mercury

Functions are central in Java. We’ll learn about functions with a few different examples.

public class Functions {

    // Here's a function that takes two integers and returns
    // their sum as an integer.
    public static int plus(int a, int b) {
        // Java requires explicit returns, i.e. it won't
        // automatically return the value of the last
        // expression.
        return a + b;
    }

    // In Java, we can't omit the type for parameters, even if they're
    // of the same type. Each parameter needs its type declared.
    public static int plusPlus(int a, int b, int c) {
        return a + b + c;
    }

    public static void main(String[] args) {
        // Call a function just as you'd expect, with
        // name(args).
        int res = plus(1, 2);
        System.out.println("1+2 = " + res);

        res = plusPlus(1, 2, 3);
        System.out.println("1+2+3 = " + res);
    }
}

To run this Java program:

$ javac Functions.java
$ java Functions
1+2 = 3
1+2+3 = 6

There are several other features to Java functions. One is method overloading, which allows multiple methods to have the same name with different parameters. We’ll look at this in more detail in future examples.