java - 嵌套方法

标签 java methods

add 和 GetContentPane 是方法

这段代码是否访问方法中的方法?这段代码的作用是什么?

frame.getContentPane().add(BorderLayout.SOUTH, b);

最佳答案

在显示的代码中,它不是“嵌套方法”,而是在从另一个方法返回的对象上调用的方法。 (仅供引用,在 Java 编程语言中,没有嵌套方法的概念。)

以下行:

f.getContentPane().add(component);

相当于:

Container c = f.getContentPane();
c.add(component);

第一个示例不是将两个语句分成两行,而是在一行中执行。

从概念上讲,这是正在发生的事情:

  1. f.getContentPane 方法返回一个 Container
  2. 在返回的 Container 上调用 add 方法。

一些视觉效果可能会有所帮助:

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.

关于java - 嵌套方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/993770/

相关文章:

java - 如何在客户端*无需*安装 Java3D 等插件的情况下在网页上编写 Java 3D 元素

java - 从 EntityManager 返回部分实体

java - 我应该把这个参数放在哪里以及如何运行这个程序?

java - 调用方法时Java中的调用站点是什么?

ruby - 如何将参数传递给ruby中的别名方法

java - Hibernate hbm2ddl.auto 配置的可能值是什么,它们的作用是什么

java - Maven 2 程序集插件破坏了一些 META-INF 文件

eclipse - 为什么 eclipse 为方法生成参数名称为 arg0,arg1,arg2....

java - 错误 java.lang.NoSuchMethodError

C# 为类设置特定文化