【问题标题】:Is this a class, constructor, or method? [duplicate]这是一个类、构造函数还是方法? [复制]
【发布时间】:2015-06-15 15:17:39
【问题描述】:

我无法确定这到底是什么。至此,我已经熟悉了方法、构造函数和类声明的样子。这是哪个?为什么看起来像构造函数和方法生了宝宝?

public Polygon polygonFrom(Point[] corners) {  
// method body goes here
}

【问题讨论】:

  • 它是一个方法,构造函数不返回任何东西。

标签: java


【解决方案1】:

你拥有的是一种方法

为什么?

在 Java 中,方法声明有五个组成部分,依次为:

  1. 修饰符 - 例如 publicprivate 以及您稍后将了解的其他修饰符。
  2. 返回类型—方法返回值的数据类型,如果方法没有返回值,则为void
  3. 方法名称——字段名称的规则也适用于方法名称,但约定略有不同。
  4. 括号中的参数列表 - 输入参数的逗号分隔列表,前面是它们的数据类型,用括号括起来,()。如果没有参数,则必须使用空括号。
  5. 用大括号括起来的方法体——方法的代码,包括局部变量的声明,放在这里。
public Polygon polygonFrom(Point[] corners) {  
// method body goes here
}

分析你的代码 sn-p :

1。 public 是修饰符

2。多边形是返回类型

3。 plygonForm 是方法名

4。 (Point[] corners) 是括号内的参数列表

5。 {} 是一个方法体

【讨论】:

  • 哇。这是一个很好的答案。 :)
  • 我的印象是 Polygon 是一个类,而不是返回类型。还是两者兼而有之?
  • 不是返回类型
  • 太棒了!那是我的困惑,我认为惯例是大写类,而且初学者的教程经常使用非常基本的类名。谢谢!
  • @JasonZwick 您对约定是正确的,但我不确定您为什么在这里混合两个不同的概念?
【解决方案2】:

它的返回类型为 Polygon 的事实将自己标识为一个方法,你认为它看起来像一个构造函数的原因是因为方法中缺少返回语句。该方法将在编译时失败。

应该是这样的:

public Polygon polygonFrom(Point[] corners) {  
// method body goes here
return null;
}

【讨论】:

  • 我很确定方法体包含返回语句...
  • 不是来自 OP 提供的内容。如果包含 return 语句,它将看起来不像构造函数。带有 void 的方法也没有 return 语句。
  • "同样带有 void 的方法没有返回语句。"他们不需要一个,但可以 - 即读取数据 -> if(someCondition){return;} -> methodConsumingYearsOfCPUTime()
【解决方案3】:

这是一个返回类型Polygon 并有一个Point 数组作为其参数的方法。

您可以知道,因为您在其声明中具有返回类型、方法名称和形式参数列表。 :)

【讨论】:

  • 我的印象是 Polygon 是一个类,而不是返回类型。还是两者兼而有之?
  • 用这个例子来理解:Polygon是一个返回类型,也可以是一个类。类似于字符串。 String 是一个类,但它也可以是一个返回类型。 :)
  • @Zizouz212 在这种情况下,多边形是一个返回类型。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-05-23
  • 1970-01-01
  • 1970-01-01
  • 2013-06-12
  • 2014-03-06
  • 2022-01-09
  • 2012-06-02
相关资源
最近更新 更多