为什么Java中方法调用中间要使用括号?

2023-12-29

尽管我做了一些广泛的搜索,但我遇到了一些代码,但无法理解它的某些方面!

我的问题是:为什么在方法调用中间使用括号?

    package com.zetcode;

    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;

    import javax.swing.JButton;
    import javax.swing.JFrame;
    import javax.swing.JPanel;
    import javax.swing.SwingUtilities;


    public class QuitButtonExample extends JFrame {

    public QuitButtonExample() {

        initUI();
    }

    private void initUI() {

       JPanel panel = new JPanel();
       getContentPane().add(panel);

       panel.setLayout(null);

       JButton quitButton = new JButton("Quit");
       quitButton.setBounds(50, 60, 80, 30);

       quitButton.addActionListener(new ActionListener() {
           @Override
           public void actionPerformed(ActionEvent event) {
               System.exit(0);
          }
       });

       panel.add(quitButton);

       setTitle("Quit button");
       setSize(300, 200);
       setLocationRelativeTo(null);
       setDefaultCloseOperation(EXIT_ON_CLOSE);
    }

    public static void main(String[] args) {

        SwingUtilities.invokeLater(new Runnable() {
            @Override
            public void run() {
                QuitButtonExample ex = new QuitButtonExample();
                ex.setVisible(true);
            }
        });
    }
}

我指的是getContentPane().add(panel);陈述。我知道它的作用,但不太明白它是如何工作的。我是 Java 新手,有 OO 的基础知识,如类字段、类方法、实例字段、实例方法、内部类,但就是这个。


这就是通俗的说法,叫做方法链接, 好像。

getContentPane().add(panel);

解析为

Container c = this.getContentPane();
c.add(panel);

括号表示方法调用,其返回值就地用作this下一个方法调用的对象(add).

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么Java中方法调用中间要使用括号? 的相关文章

随机推荐

  • 如何从 SPSS 中的另一个语法文件获取语法文件?

    在 R 中有source函数 您可以从另一个 R 脚本获取 R 脚本 我希望能够在 SPSS 中做同样的事情 如何从另一个 SPSS 语法文件获取 SPSS 语法文件 根据 AndyW 的评论进行了更新 有的是INSERT and INCL
  • 覆盖 pytest 参数化函数名称

    我的参数决定了参数化 pytest 的名称 我将使用一些随机参数进行这些测试 为了使 junit 中的报告名称不会混乱 我想为每个参数化测试创建一个静态名称 是否可以 JUnit似乎有一个参数 更改参数化测试的名称 https stacko
  • 使用什么(纯)Python 库进行 AES 256 加密? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我正在寻找一个 最好是纯的 python 库来进行 AES 256 加密和解密 该库应支持 CBC 密码模式并使用 PKCS7 填充根据我
  • 如何在 VSIX 包安装上注册键绑定代码

    我只想在安装期间向 Visual Studio 包添加一次键盘快捷键 基本上我知道如何从包代码中做到这一点 例如 var dte GetGlobalService typeof DTE as DTE2 if dte null dte Com
  • 是否可以将多个验证组分配给单个验证控件?

    我有一个这样的表格 UserID has to be validated when user clicks Check Availability and Submit 因此 必须为 UserID 必需的字段验证器分配两个组 好像现在只分配了
  • 组件更新时重置 Snackbar 上的 autoHideDuration 计时器

    我希望只有当组件未更新时 小吃栏才会在 2 秒内超时 如果它更新了 我希望计时器在还没有达到 2 秒时重置 useEffect gt setOpen true props single message return div props si
  • 在哪里可以找到 DockerCli.exe

    我正在尝试将 Docker 切换到我的 Windows Server Core 1903 计算机 无桌面 上的 Windows 容器 This https forums docker com t cli to switch between
  • 可重写的方法不能是静态的:我还能怎样做我想做的事情?

    我有一系列静态类 用于获取枚举值的字符串 它们看起来都是这样的 public static class MyEnumToString private static Dictionary
  • JS 将参数作为变量传递给匿名函数并稍后调用 -> 参数值问题

    我在调用带有作为变量传递的参数的匿名函数时遇到问题 如果我在将变量作为参数传递给匿名函数后将其保存到数组中 那么我更改变量并调用该函数 它会打印变量的最后一个值 而不是我推送匿名函数时变量的值进入我的数组 我在以下示例中简化了代码 var
  • 使用 R 求解方程

    我如何在 R 中以数值方式求解以下形式的方程的根 f r r c 1 B c exp M B r 其中M B和c是已知常数 提前致谢 由于 R 无法执行此功能 您可能需要使用像 Sage 这样的超集包 Sage 包含 R 和许多其他软件包
  • 着色器编译器如何工作?

    是否有人参考了有关着色器编译器 图形驱动程序编译器内部工作的特定文档和研究 编写普通的C编译器和编写着色器编译器没有太大区别 关于编写编译器的标准书籍是所谓的 龙书 http www amazon com Compilers Princip
  • ASP.NET MVC 4,在将视图模型对象用作操作方法参数之前如何访问/修改视图模型对象(并更改视图和操作方法)?

    ASP NET MVC MVC4 中是否有任何有用的挂钩 可以让您在调用操作方法之前访问操作方法参数 视图模型 然后也可以 例如 取决于您在操作方法中检查的内容的值 参数 让您阻止调用操作方法 即将视图模型对象 操作方法参数 转发到另一个操
  • 在生产中使用 GCC 的 C++0x 模式?

    有人用GCC 4 4 0吗C 0x http gcc gnu org gcc 4 4 cxx0x status html生产支持 我正在考虑将它与最新的 MinGW 一起使用 但我不确定它是否足够成熟 我对 感兴趣 TR1 支持 auto
  • Cloud Functions for Firebase 中的本地依赖项

    当我尝试部署我的功能时 firebase 抱怨这一点 const admin require firebase admin const functions require firebase functions const C require
  • 无法从Python目录中打开文件[重复]

    这个问题在这里已经有答案了 我编写了一个小模块 首先查找目录中的所有文件 然后合并它们 但是 我在从目录打开这些文件时遇到问题 我确保我的文件和目录名称是正确的 并且文件实际上位于该目录中 下面是代码 seqdir results outf
  • java 获取 Active Directory RootDSE

    我正在尝试使用 java 获取 Active Directory rootDSE 这是我到目前为止所做的尝试 public class RootDSE public DirContext context public Attributes
  • 从IP地址查找时区

    当我只有 IP 地址时 有没有办法找到用户所在的时区 我正在寻找需要应用于服务器时间的时间偏移 以便找到用户位置的时间 您需要尝试确定位置 远非 100 准确 看这个问题 https stackoverflow com questions
  • 如何使用 JdbcCursorItemReader 和多线程从 Oracle Db 读取数据

    我有 Spring Batch 应用程序并配置了如下步骤 ThreadPoolTaskExecutor taskExecutor new ThreadPoolTaskExecutor taskExecutor setCorePoolSize
  • 有没有办法防止selenium自动终止空闲会话?

    我正在使用 selenium 来自动化与网站的一些交互 此过程涉及打开多个浏览器并让它们间歇性地执行操作 然而 偶尔会出现长时间 gt 1 小时 不活动的情况 并且 selenium 似乎会在大约 30 分钟没有被调用后自动终止浏览器会话
  • 为什么Java中方法调用中间要使用括号?

    尽管我做了一些广泛的搜索 但我遇到了一些代码 但无法理解它的某些方面 我的问题是 为什么在方法调用中间使用括号 package com zetcode import java awt event ActionEvent import jav