Последовательный вызов функций в Java
Начинал знакомство с программированием с чтения учебника по С/С++. И там в теме "Функции" была такая информация:
"Каждая функция обладает собственным именем, и, когда оно встречается в программе, управление переходит к телу данной функции. Этот процесс называется вызовом функции (или обращением к функции). По возвращении из функции выполнение программы возобновляется со строки, следующей после вызова функции":
Тот учебник я так и не дочитал до конца, переключился на язык Java, и с тех пор изучаю его и пишу на нём. И сейчас я подумал, что все неизвестные мне вещи в Java я воспринимаю так: "ну наверное по аналогии с С++ работает". Я правильно понимаю, что последовательный вызов методов в Java происходит аналогично языку С++ ? Я сейчас вот такую картинку нарисовал:
Попробовал написать такой код на Java:
public class Demo1 {
public static void main(String[] args) throws InterruptedException {
System.out.println("START main()");
funcOne();
funcTwo();
System.out.println("FINISH main()");
}
private static void funcOne() throws InterruptedException {
System.out.println(" Start funcOne()");
f_1_1();
f_1_2();
f_1_3();
System.out.println(" Finish funcOne()");
}
private static void funcTwo() throws InterruptedException {
System.out.println(" Start funcTwo()");
f_2_1();
f_2_2();
System.out.println(" Finish funcTwo()");
}
private static void f_1_1() throws InterruptedException {
System.out.println(" start f_1_1()");
Thread.sleep(1_000L);
System.out.println(" finish f_1_1()");
}
private static void f_1_2() throws InterruptedException {
System.out.println(" start f_1_2()");
Thread.sleep(2_000L);
System.out.println(" finish f_1_2()");
}
private static void f_1_3() throws InterruptedException {
System.out.println(" start f_1_3()");
Thread.sleep(3_000L);
System.out.println(" finish f_1_3()");
}
private static void f_2_1() throws InterruptedException {
System.out.println(" start f_2_1()");
Thread.sleep(4_000L);
System.out.println(" finish f_2_1()");
}
private static void f_2_2() throws InterruptedException {
System.out.println(" start f_2_2()");
Thread.sleep(5_000L);
System.out.println(" finish f_2_2()");
}
}
Получаю вывод в консоль:
Ну судя по всему действительно вызов методов в Java по аналогии с С++ происходит. Странно, что учебниках по Java в явном виде это нигде не написано (ну или я не те учебники читал).