2015-02-08 55 views
0

我在一個文件夾中有2個文件。在文件「X」中,我使用文件「Y」和「Y」中的變量。成功。但是現在我想使用文件「X」中函數「A」中的函數「B」中生成的數組和變量,仍然在文件「X」中。在Java中,如何使用函數「A」中函數「B」(不使用參數)中生成的數組「1」?

我嘗試過類似的格式爲「Y」。似乎沒有任何成功。我真的想避免強制函數「A」返回所有這些數組和變量,然後通過函數「B」的參數傳遞它們。

編輯:

這是我的第一篇文章,似乎我不能投票或感謝你的幫助,我很抱歉,我的問題是低於標準桿的任何人的評論responses-,我試圖將具體。我沒有看到通過輸入代碼可以清除任何事情的方式,這裏有很多。

我的問題基本上得到了回答。

我被告知,我不能在創建函數之外使用或改變一個變量。我想用類似於我知道在文件之間工作的方法來做到這一點。我目前使用的格式

<fileY>.<variableinfileY> 

訪問我想,如果我能做到這一點,那麼我可以使用類似的方法在同一文件中訪問其他函數的變量這一新的文件X文件ÿ的變量,但奇怪的是,這是不可能的。這可以解決類似問題

對於任何人好奇,一種形式是

Arrays.copyOf(<arrayname>, <arrayname>.lengh) 

,但對我來說這沒有幫助,而且我必須在一個funcion返回變量,並通過新的功能傳遞變量參數。

編輯編輯:

你們真的想代碼:)哈哈

<afunctionname>{ 
    char[][] thisarray = new char[cols][rows]; 
} 

<DIFFERENTfunctionname>{ 
    <this is where i want to use thisarray> 
} 
+5

請顯示您的問題的真實代碼示例/問題。也許是我,但我迷失在你的A,B,X和Y's中。 – 2015-02-08 22:32:52

+1

你可以請更具體的功能和提供代碼片段的文件「X」和「Y」 – MichaelDD 2015-02-08 22:33:42

回答

1

假設這是你在說什麼:

文件X

public class FileX(){ 
    public void functionA(){ 

    } 
} 

文件Y

public class FileY(){ 
    private void functionB(){ 

    } 
} 

Yoou總是可以公開聲明變量/數組泛函之外,並訪問它像通常與fileX.variable,即

public class FileX(){ 
    int[] variableFromA; 
    public FileX(){ 

    } 
    public void functionA(){ 
     this.variableFromA = new int[]{0,1,2,3,4,5}; 
    } 
} 

public class FileY(){ 
    private void functionB(){ 
     fileX = new FileX(); 
     fileX.functonA(); 
     fileX.variableFromA; //This should give you the variable/array you want; 
    } 
} 

響應與代碼你的編輯,我會說這是可能的如果數組首先在調用函數中聲明,則使用數組執行此操作,。我會用代碼來說明。

文件X

public class FileX{ 
    public void aFunctionName(char[][] thisArray){ 
     thisArray[0][0] = 'X'; 
    } 
} 

文件y

public class FileY{ 
    public void callingFunction(){ 
     FileX x = new FileX(); 
     char[][] before = new char[2][2]; 
     before[0][0] = 'Y'; 
     x.aFunctionName(before); 
     System.out.println(before[0][0]); //This prints 'X' and not 'Y' 
    } 

    public static void main(String[] args){ 
     FileY y = new FileY(); 
     y.callingFunction(); 
    } 
} 

這工作的原因是因爲在Java中的對象陣列,並且對象沒有直接傳遞給該方法,而不是位置該對象被傳遞給該方法。看到這個#1 answer瞭解更多詳情

1

我不完全明白你的意思,尤其是關於文件X和Y的文件,但 「共享」一個變量(例如數組)跨職能(方法)是一樣簡單這:

public class X { 
    private int[] myArray; 

    private void a() { 
     myArray = new int[1]; 
     myArray[0] = 1; 
    } 

    private void b() { 
     System.out.println(myArray[0]); 
    } 
}