java - Java中的方法规范到底是什么

标签 java methods specifications

我的一个同样学习Java的 friend 问我:“Java中的方法规范和方法签名有什么区别?”

我知道什么是方法签名,它是方法名称及其参数 - methodName(int n, String str) 例如

但是 Java 中的方法规范到底是什么?

我在互联网上找到的所有内容都是pdf-file仅有的。有关方法规范的信息如下:

  1. 定义该方法的包和类的名称。
  2. 用于调用它的方法标识符。
  3. 其参数;即您必须将哪些数据作为参数传递。
  4. 它的作用及其返回值(如果有)。
  5. 无论是实例还是类方法

因此,据我了解,方法规范包括包名称(package com.site.progect 例如)、方法签名(methodName(int n, String str) )、访问说明符(privateprotected、默认或public)、返回值类型、static 标识符(如果该方法是静态的并且不属于实例)。

方法规范是否包含定义我们的方法的类的名称?它是否包含在方法签名之后抛出异常的指示(... throws Exception())?它是否包括开发人员对该方法的作用的评论?

最佳答案

两个不同的概念可能会产生混淆。

  1. 一个是对方法应该是什么的(自然语言)描述。它用英语(或任何其他语言)描述该方法的目标是什么,可能(但不一定)它的参数和返回值。

  2. 第二个是Java Language Specification中使用的短语。恰好一次in an example about abstract classes但从未正式定义。

用法#2似乎基本上指的是方法签名以及方法的返回类型。

换句话说,虽然 methodName(int n, String str) 是方法的签名,但一种可能的“方法规范”将是 Object methodName(int n, String str) 根据含义#2。

关于java - Java中的方法规范到底是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57904197/

相关文章:

java - 将 HTML 表从 JSP 传递到 Java 请求对象

java - 我可以在具有多个实例的类上使用 Random 方法吗?

java - 从链表中删除集合的方法

css - 是否有任何仅在 XML 序列化中受支持的 HTML 5 构造?

java - 如何处理 httpclient 4.3+ 中的超时?

c# - 返回作为参数传递的相同对象的方法

c# - parallel.foreach 将多个参数传递给方法

c++ - 从 '(signed) -1' 到 'unsigned long' 的转换是否标准化?

java - Java如何找到规范实现?

java - 根据列值检索子类的集合