java构造方法定义

时间:2011-08-30 13:50:39

标签: java methods constructor

这叫什么? 这是来自JBitTorrent API的Bits类的构造函数。这完全有效:

public Bits and(Bits b){ /* something */ }

但是方法名称中有一个空格。那么这就叫了吗?我认为是“java multimethod”,但事实并非如此。

6 个答案:

答案 0 :(得分:3)

它不是构造函数,它是常规的Java方法。

第一个Bits是返回类型,and是方法名称。

如果它是构造函数,它将没有返回类型,并且名称将是它正在构造的类的名称。

方法可能构建一个新的Bits实例并将其返回,但它仍然是一种方法。

答案 1 :(得分:3)

它不是构造函数,方法名称中没有空格。

该方法名为and,它以Bits个对象作为参数,并返回Bits个对象。

这是一种常规方法,因为没有特别的名称(从语言角度来看)。

这是一种常见的模式,通常用于不可变对象:不是修改调用该方法的对象,而是使用修改后的状态创建一个新对象(这也可以在可变对象上完成,但更常见于不可变的)。

答案 2 :(得分:1)

您认为在哪里可以看到方法名称中的空格?

public Bits and(Bits b){ //something }

这是名为public的{​​{1}}方法,它返回一个and对象,并以Bits个对象作为参数(参数变量名为{{1} }})。

它不是构造函数,只是常规方法。

答案 3 :(得分:1)

  

但方法名称中有一个空格

不,没有。方法名称是“和”。 Bits是返回类型!

答案 4 :(得分:1)

方法中没有空格,方法名称为“and”。

  • public - 修饰符
  • Bits - 返回值
  • and - 方法名称
  • Bits b - Bits
  • 类型的参数b

答案 5 :(得分:1)

通常用于Builder pattern(例如StringBuilder),其中提供字段/操作以创建完全构造的对象。

public Bits and(Bits b) {...}不是构造函数,而是需要Bits b才能更改当前内部位(ANDed)状态的方法。

实施将产生这种效果。

public Bits and(Bits b) {
    this.doAnd(b);

    //Now that our internal bits are ANDed with bits B, return our changed state
    return this;
}