7.1 Creating and Invoking Methods:

public class Greeting {
    public static void greet() {
        System.out.println("Hello, World!");
    }

    public static void main(String[] args) {
        greet(); // Output: "Hello, World!"
    }
}

7.2 Method Parameters and Return Types:

public class Calculator {
    public static int add(int num1, int num2) {
        return num1 + num2;
    }

    public static void main(String[] args) {
        int result = add(5, 3);
        System.out.println("Result: " + result); // Output: "Result: 8"
    }
}

7.3 Method Overloading:

public class MathOperations {
    public static int add(int num1, int num2) {
        return num1 + num2;
    }

    public static double add(double num1, double num2) {
        return num1 + num2;
    }

    public static void main(String[] args) {
        int intResult = add(5, 3);
        System.out.println("Integer Result: " + intResult); // Output: "Integer Result: 8"

        double doubleResult = add(2.5, 3.7);
        System.out.println("Double Result: " + doubleResult); // Output: "Double Result: 6.2"
    }
}

7.4 Recursion:

public class Factorial {
    public static int factorial(int n) {
        if (n == 0 || n == 1) {
            return 1;
        } else {
            return n * factorial(n - 1);
        }
    }

    public static void main(String[] args) {
        int result = factorial(5);
        System.out.println("Factorial: " + result); // Output: "Factorial: 120"
    }
}