2016-02-26 158 views
0

我在方法(private void jButton2ActionPerformed)中創建了類DownloadManager的實例,並且需要通過另一種方法訪問它?如何用不同的方法創建一個類的實例?

private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) { 
    //need to access the instance dman here 
}           

private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {           
    DownloadManager dman = new DownloadManager(); 
    dman.actionAdd("http://dev.x-plane.com/download/tools/wed_mac_141r1.zip"); 
    dman.actionAdd("http://dev.x-plane.com/download/tools/wed_mac_141r1.zip"); 
    dman.setVisible(true); 
}  
+1

也許看看單身模式?可以使用一個類級別的實例? – MadProgrammer

+0

如果您需要其他方法中的DownloadManager對象,請在此處定義。我看到你不在jButton2ActionPerformed方法中使用它。 –

回答

1

「如果你希望能夠從兩個不同的方法,該方法的封閉範圍內訪問變量,定義變量。」 -Sweeper

這基本上意味着你應該「拖」的方法之外的變量:

DownloadManager dman = new DownloadManager(); //Should put the variable here! 
private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) { 
    //need to access the instance dman here 
}           

private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {           
    //DownloadManager dman = new DownloadManager(); I moved this line to above! 
    dman.actionAdd("http://dev.x-plane.com/download/tools/wed_mac_141r1.zip"); 
    dman.actionAdd("http://dev.x-plane.com/download/tools/wed_mac_141r1.zip"); 
    dman.setVisible(true); 
} 

這是非常簡單的,不是嗎?

或者,你可以得到下載管理器創建一個類:

public final class DownloadManagerUtility { 
    private DownloadManagerUtility() { // private constructor so that people don't accidentally instantiate this 

    } 

    private DownloadManager dman = new DownloadManager(); 
    public static void getDownloadManager() { return dman; } 
} 

這樣做的好處是,你可以添加更多的被下載管理器在一個單獨的類,它增加了可維護性相關的方法。

相關問題