2014-04-03 61 views
0

在Java中從該類的主要方法內實例化類的新實例是否正確?在Java中主要創建同一個類的新實例

我看到這個代碼:

public class MaxContiguousSum { 
public int get(int[] iArray){ 
    if(iArray.length==0){ 
    return 0; 
    } 

    int maxsum = iArray[0]; 
    int currentsum = 0; 

    for(int i=0;i < iArray.length;i++){ 
    currentsum += iArray[i]; 
    if(currentsum > maxsum){ 
    maxsum = currentsum; 
    } 
    if(currentsum < 0){ 
    currentsum=0; 
    } 
    } 

    return maxsum; 
} 

public static void main(String[] args) { 
    int[] iarr = {-7,-6,-5,-4,-5,-6,-7}; 
    MaxContiguousSum maxsum = new MaxContiguousSum(); 
    System.out.println(maxsum.get(iarr)); 
} 

} 

而且它是一種困惑,因爲我的主要方法是類本身,而是被實例化類的一個對象。這在Java中是否正確?我的意思是,這是一個好習慣嗎?

+0

一切都在正確的背景下是正確的。你確切的問題是什麼? – Kon

+0

這很好,如果它的工作,並明確。這裏沒有特別的代碼味道,如果這就是你要求的,至少在你的例子中沒有。在較大的應用程序中,我並不傾向於擁有這樣的代碼,但對於單個源文件的快速一次性使用,這非常方便(並且說實話,比在小程序中將所有內容都設置爲靜態的更好) 。此外,有時甚至在大型項目中,將'main'放入特定類以進行快速測試或實用程序應用程序會很有用。 –

回答

0

這不是一個壞習慣,但是你可能想要在你的代碼增長的時候將你的類在相同的包中分開,或者甚至在不同的包中分開。

如果是快速測試,那絕對沒有問題。

換句話說...

main方法是切入點您的應用程序。

如果你的應用程序只包含一個類或幾個類,可能在同一個文件中,那麼你的入口點可以是你的類的一個靜態方法。

一旦你開始得到封裝層次和很多你可能希望你的切入點,從您的數據,演示文稿,資源等獨立的結構化代碼

相關問題