2017-02-17 74 views
-1

我學習Java和我面臨的問題,同時訪問從B級以下A類的方法中定義的變量是我的代碼值:如何訪問的變量「i」從其他類

public class A{ 
...... 
...... 
public int dummy(){ 
for(int i=1; i<=10; i++){ 
//here are some code 
} 

我想在B類下面訪問我的價值。我試圖達到這個目標,但沒有取得任何成功。

public class B{ 
..... 
..... 
A var1 = new A(); 
int new = var1.i; 
} 
+0

在這種情況下,你不能。您應該查看基礎Java教程,瞭解基礎概念和語法。 – pvg

+3

您不能在它們定義的方法之外訪問局部變量。而'new'是一個保留關鍵字。 – shmosel

+0

有什麼辦法可以訪問這個變量嗎?我應該在我的代碼中更改哪些內容? –

回答

0

如果你真的想從外面A訪問i,你需要使它成爲一個公共的成員,像這樣:

public class A{ 
    public int i; 
    public int dummy(){ 
     for(i=1; i<=10; i++){ 
      // some code 
     } 
    } 
} 

沒有多大用處了你的描述,雖然。通常,像索引i這樣的迭代器被聲明爲循環本地(循環外部不可訪問,更不用說函數或類),因爲它對循環之外的任何內容都沒有意義。

0

您不能這樣做,在for循環中聲明的變量i只在for循環內部可訪問。

如果您想以您嘗試的方式訪問變量,您必須將其聲明爲實例變量或靜態變量。

public class A{ 
public int j; 
...... 
public int dummy(){ 
for(int i=1; i<=10; i++){ 
j = i; 
} 
} 
0

在你當前的實現,因爲它是在你的for循環,而不是作爲一個成員變量或類A的靜態變量 你也不能說出一個變量new,爲new局部聲明你不能訪問i是一個保留字。

public class A { 
    private int i = 1; 
    public int getI() { 
     return this.i; 
    } 
} 

public class B { 
    public void someMethod() { 
     A var1 = new A(); 
     int var2 = var1.getI(); 
    } 
} 
0
public class A{ 

    public A(){ 

    } 

    public int dummy(){ 

     int i; 

     for(i=1; i<=10; i++){ 
      //here are some code 
     } 

     return i; 
    } 
} 


public class B{ 

    public B(){ 
     A var1 = new A(); 
     int new = var1.dummy(); 
    } 
} 

這項工作?