2011-08-30 66 views
-1

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

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

但是在方法名称中有一个空格。所以叫这个叫?我认为是“java multimethod”,但事实并非如此。

+0

如果'}'在它自己的行或'// something'是'/ * something * /',它将是有效的。 – BoltClock

+0

@BoltClock:*和*它实际上会有一个'return'语句......但这不是重点,因为方法体显然不是这个问题的焦点。 –

+0

是的,也是:) – BoltClock

回答

3

它不是一个构造函数,它是一个普通的Java方法。

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

如果它是一个构造函数,它将不具有返回类型,并且该名称将是它正在构造的类的名称。

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

1

您认为您在方法名称中看到空格的位置?

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

它被命名为and一个public方法,它返回一个Bits对象,并且采用一个Bits对象作为参数(与名为b参数变量)。

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

3

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

该方法被称为and,它需要一个Bits对象作为参数,它返回一个Bits对象。

这是一个正常的方法,没有特别的名字(从语言的角度来看)。

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

1

,但有方法名的空间

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

1

方法中没有空格,方法名称是“和”。

  • public - 改性剂
  • Bits - 返回值
  • and - 方法名称
  • Bits b - 一个参数b类型比特的
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; 
}