如何访问变量" i"来自其他班级

时间:2017-02-17 19:32:00

标签: java

我正在学习java,我在从B类访问A类方法中定义的变量时遇到问题。这是我的代码:

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

我想在B级以下访问i的价值。我试图实现这一目标,但没有取得任何成功。

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

4 个答案:

答案 0 :(得分:0)

如果您确实想要从i外部访问A,则需要将其设为公开会员,如下所示:

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

但是,您所描述的内容并没有多大用处。通常,像索引i这样的迭代器被声明为循环的局部(在循环外部不可访问,更不用说函数或类),因为它对循环外的任何东西都没有意义。

答案 1 :(得分:0)

您无法执行此操作,i循环中声明的变量for仅在for循环内可访问。

如果您想以您尝试的方式访问变量,则必须将其声明为实例变量或静态变量。

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

答案 2 :(得分:0)

在当前的实现中,您无法访问i,因为它在for循环中是本地声明的,而不是作为成员变量或类A的静态变量。 您也无法命名变量new,因为new是保留字。

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();
    }
}

答案 3 :(得分: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();
    }
}

那工作?