Java围绕类传递变量

时间:2013-10-25 09:51:42

标签: java class

我是java的新手,我试图将以下示例中的变量从一个类传递到另一个类,我想知道这是否可能以及如果是这样我将如何处理它。

由于此代码不起作用,因为它不是静态的。

主类

public class testAll
{
    public static void main(String[] args)
    {
        One one = new One();
        Two two = new Two();


    }
}

第一堂课:

public class One
{

    public int test = 4;

    public int getTest()
    {
        return this.test;

    }


}

第二节课:

public class Two
{

    public void value()
    {
        System.out.print("Var is: " + One.getTest());

    }


}

谢谢,

纳兹

4 个答案:

答案 0 :(得分:2)

让我们考虑一下,如果你想从B类访问A类变量,那么A类需要了解B类。

public class A {

    public A(B classB){
        this.classB = classB;
    }

    public void printValue(){
        System.out.println(this.classB.getTest());
    }
}

现在,您需要在构造函数中将ClassB的实例传递给ClassA,以便Class A在调用printValue()时具有对ClassB的引用;

ClassB b = new ClassB();
ClassA a = new ClassA(b);
b.getTest();
a.printValue();

答案 1 :(得分:1)

您必须先为Class One创建一个实例。试试这个

public void value()
{
    One one_object = new One();
    System.out.print("Var is: " + one_object.getTest());

}

答案 2 :(得分:1)

public class Two {

    private One one;
    public Two(One one) {
        this.one = one;
    }

    public void printValue() {
        System.out.print("Var is: " + one.getTest());
    }
}

public class Main {
    public static void main(String [] args) {
        One one = new One();
        Two two = new Two(one);

        two.printValue();
    }
}

答案 3 :(得分:0)

有两种方式 - 传递引用或传递值:

public class One {
    private int value = 0;
    public One(final int value) {
        this.value = value;
    }
    public int getValue() { return value; }
}

public class Two {
    private One one = null;

    public Two(final int value) {
        this.one = new One(value);
    }

    public Two(final One one) {
        this.one = one;
    }

    public int getValue() { return one.getValue(); }
}

将引用传递给One实例时,将从One读取该值,并仅更改One实例内部保存的值。传递一个原语(int,boolean ...)时,该值被两个实例复制并“拥有”。阅读更多关于参考和价值观的差异,以掌握这个想法。一旦你明白了,这很简单。