//В начале пишем public class и имя программы. С большой буквы, CamelCase:
public class HelloWorld {

    //при запуске программы она начинает исполняться с этого метода.
    //заголовок метода должен быть ровно таким, как в примере, иначе программа не запустится
    public static void main(String[] args) {
        //заводим переменную для хранения целых чисел, сразу присваиваем значение
        int x = 42;

        //печать на экран. Здесь и везде в конце оператора ставится ;
        System.out.println("Hello World");

        //Распечатывать можно только что-то одно, поэтому, если у вас несколько объектов,
        //нужно их сначала конкатенировать (соединить) операцией плюс:
        System.out.println("Значение переменной x равно " + x);
        //в отличие от Python не нужно явно превращать числа в строку.
        //При конкатенации любые объекты автоматически
        //превращаются в строку

        //несколько вариантов условного оператора.
        //Условие всегда пишется в круглых скобках
        //без else
        if (x == 10 || x == 11 && x == 12 || !(x >= 10)) {
            //какие-то действия
        }

        //с else
        if (x == 10 || x == 11 && x == 12 || !(x >= 10)) {
            //какие-то действия
        } else {
            //действия, если условие ложно
        }

        //аналог elif
        if (x == 1) {

        } else if (x == 2) {

        } else if (x == 3) {

        } else {

        }

        //если внутри блока if или else находится ровно один оператор,
        //фигурные скобки можно (и лучше так и делать) не писать.
        if (x == 1)
            System.out.println("X = 1");
        else {//здесь скобки нужны, потому что два действия
            System.out.println("X != 1");
            System.out.println("X != 1");
        }

        //чтобы вызвать функцию (определение см. ниже), можно просто написать ее имя
        System.out.println("f(10) = " + f(10));

        //void функцию (у которой нет результата) можно вызвать только в качестве отдельного действия
        g();
    }

    // определяем функцию внутри класса, на том же уровне вложенности, что и main
    // пишем сначала слова public static
    // потом тип результата
    // потом имя
    // потом аргументы с типами в скобках
    private static int f(int x) {
        //как и в python, значение возвращает оператор return
        return 2 * x + 1;
        //return для какого-то int-значения должен быть обязательно. Иначе вы получите
        //ошибку времени компиляции "missing return statement"
    }

    //возвращаемый тип void означает, что результата возвращено не будет
    private static void g() {
        System.out.println("Вызов g");
        //здесь return не обязателен, потому что это void-функция
    }
}