2013-04-18 44 views
0

我想了解一個基於Java的開源項目,其中有一個代碼段像約從設計角度來理解一個Java代碼段

protected SimpleBinaryModel(ExampleSet exampleSet, double threshold) { 
    super(exampleSet); 
    this.threshold = threshold; 
} 

雖然我通常可以猜測如何,這種功能的目的是實現,我不太明白將此函數定義爲「受保護」並將「exampleSet」定義爲「超級」的原因。從面向對象設計的角度來定義它們的一般優點是什麼?

另外,this.threshold = threshold;的目標是什麼?

回答

2

這不是一個函數。這是一個constructor

super(exampleSet);表示基類具有帶有ExampleSet參數的構造函數。

this.threshold = threshold;使用參數threshold的值初始化當前類別的閾值字段。

0

SimpleBinaryModel是一個構造函數。

super(exampleSet)正在調用超類的構造函數。它必須始終是第一行。

protected可以通過相同包的類和位於任何包中的子類訪問。

1

A protected constructor意味着其他類不能使用new實例化對象,通常還有另一種方法來構建它們的實例(如factory method)。由於它受保護,所以子類仍然可以覆蓋它。