2011-08-30 94 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; 
}