В показанном коде это не «вложенный метод», а метод, который вызывается для объекта, который был возвращен из другого метода. (Просто для вашей информации, на языке программирования Java нет понятия вложенного метода.)
Следующая строка:
f.getContentPane().add(component);
эквивалентно:
Container c = f.getContentPane();
c.add(component);
Вместо того, чтобы разделять два оператора на две строки, первый пример выполняет их в одну строку.
Концептуально, это то, что происходит:
- Метод
f.getContentPane
возвращает Container
.
- Метод
add
вызывается для Container
, который был возвращен.
Может быть полезно иметь некоторые визуальные эффекты:
f.getContentPane().add(component);
|________________|
L returns a Container object.
[Container object].add(component);
|________________________________|
L adds "component" to the Container.
Это не слишком отличается от того, как подстановка работает в математике - результат выражения используется для продолжения вычисления выражения:
(8 * 2) + 4
|_____|
L 8 * 2 = 16. Let's substitute that.
16 + 4
|____|
L 16 + 4 = 20. Let's substitute that.
20 -- Result.