【问题标题】:What are client methods in Java?Java中的客户端方法是什么?
【发布时间】:2016-01-09 17:55:34
【问题描述】:

我对 Java 比较陌生,并试图了解有关术语的更多信息。在阅读时,我在讨论公共、私有和静态变量时遇到了 client methods 一词。

关于这个词,我有两个问题:

  • client methods 是否只是未在特定文件中声明的所有方法?假设我有两个文件,一个名为 File1.java,另一个名为 File2.java。如果File2.java 包含一个名为printText 的方法,那么从File1 的角度来看,这是否会被视为client method
  • 为什么将它们称为“client”方法,究竟是什么定义了客户端?还有client variables吗?

编辑:作为参考,我在Barron's AP Computer Science A book的当前最新版本中看到了这个术语,这里直接引用:

变量 OVERDRAWN_PENALTY 是 BankAccount 类中的一个示例。 由于该变量是公共的,因此可以在任何客户端方法中使用。 [...] 一种 客户端方法将变量称为 BankAccount.OVERDRAWN_PENALTY。在它自己的类中,它被称为 只是OVERDRAWN_PENALTY。

重新编辑,这部分是在上面引用之前包含的:

所有客户端程序都可以访问类似的公共方法。 然而,客户并不知道类的实现,并且可能 不访问私有实例变量和私有方法 类。

【问题讨论】:

  • 据我所知,java中没有client methods这样的东西
  • 你在读什么?这不是我所知道的标准术语...
  • 你能引用你读到的内容吗?我不知道 Java 上下文中的“客户端方法”一词,Google 也不知道。
  • 从 API(库)的角度来看,它们可能是指客户端代码,例如使用库和调用 API 的代码?不过,只是猜测。
  • 我的问题已被编辑以包含参考。

标签: java terminology


【解决方案1】:

好的,根据您的 cmets,本书的这一部分似乎使用术语 client methods 作为“不在此类/包/库中使用此类的方法”的简短版本。

【讨论】:

  • 虽然这是最短的答案,但我认为这准确地描述了这本书想要表达的意思,所以我会接受它作为参考答案。
【解决方案2】:

我认为它只是意味着“暴露给客户”。想想一个 API,它可以包含任意数量的各种可见性修饰符的方法,但唯一可以直接用作“客户端”的方法是 public

不过,在阅读了几次之后,似乎确实将访问当前类的不在同一个类中的方法视为“客户端方法”。

【讨论】:

    【解决方案3】:

    “客户端”一词通常用于表示“其他系统或服务的用户”。

    例如,当谈到客户端进程时,这意味着一个进程访问、使用或消费由某个相应的服务器程序或进程提供的服务。

    这种语言更普遍地延续到了 API 的讨论中。 API 的“客户端”是一个程序(通常由不同的程序员编写),它访问由该 API 的合同定义的服务。顺便说一句,在 Java 中,API 由类和接口的所有成员组成,这些成员可以被不同包中的类访问(即导出的成员定义 API)。

    在提供的段落中:

    变量 OVERDRAWN_PENALTY 是 BankAccount 类中的一个示例。 由于该变量是公共的,因此可以在任何客户端方法中使用。 [...]客户端方法将变量称为 BankAccount.OVERDRAWN_PENALTY。在它自己的类中,它被称为 只是OVERDRAWN_PENALTY。

    客户端方法指的是访问BankAccount类的服务的方法(可能由其他人编写),在本例中是类中的公共变量。

    【讨论】:

      【解决方案4】:

      API 用户(例如方法)的术语“客户端”对我来说很常见。因此,如果它是使用另一种方法的方法,则第一个方法是后者的客户端。

      在这种情况下,它与“网络客户端”完全无关。

      其中一个相当权威的来源是 Joshua Bloch 的《Effective Java》一书。

      让我举两个例子:

      类允许客户端获取自身实例的常规方法是提供公共构造函数。

      和:

      简而言之,伸缩构造器模式是可行的,但是很难写 当有很多参数时,客户端代码更难阅读。

      我想你可能很容易想出“客户端方法”。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-03-11
        • 1970-01-01
        • 2018-07-01
        • 2021-04-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多